加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

你与数据科学家只差这26条Python技巧

发布时间:2019-01-30 07:48:15 所属栏目:教程 来源:wLsq
导读:Python是目前世界上最流行的编程语言之一。因为: 它容易学习 它用途超广 它有非常多的开源支持(大量的模块和库) 作者 Peter Gleeson 是一名数据科学家,日常工作几乎离不python。一路走来,他积累了不少有用的技巧和tips,现在就将这些技巧分享给大家。这

双星“**”放在字典的前面可以让你将字典的内容作为命名参数传递给函数。字典的键是参数的名字,键的值作为参数的值传递给函数。如下所示:

  1. dictionary = {"a": 1, "b": 2} 
  2. def someFunction(a, b): 
  3.     print(a + b) 
  4.     return 
  5. # these do the same thing: 
  6. someFunction(**dictionary) 
  7. someFunction(a=1, b=2) 

当你想要创建一个函数,它需要能处理事先没有定义过的参数,那么就要用到前面提到的技巧了。

LIST COMPREHENSIONS

List comprehensions(列表推导式)

列表推导式可以说是我最喜欢的Python技巧之一。这种表达式可以让你写出像自然语言一样易于理解并且还很简洁的代码。

你可以通过这个链接了解更多关于列表推导式的用法。地址:https://www.learnpython.org/en/List_Comprehensions

  1. numbers = [1,2,3,4,5,6,7] 
  2. evens = [x for x in numbers if x % 2 is 0] 
  3. odds = [y for y in numbers if y not in evens] 
  4. cities = ['London', 'Dublin', 'Oslo'] 
  5. def visit(city): 
  6.     print("Welcome to "+city) 
  7. for city in cities: 
  8.     visit(city) 

MAP

Python有许多非常有用的内置函数。其中一个就是map()——特别是和lambda函数相结合的时候。

  1. x = [1, 2, 3] 
  2. y = map(lambda x : x + 1 , x) 
  3. # prints out [2,3,4] 
  4. print(list(y)) 

在这个例子中,map()对x中的每一个元素都应用了一个简单的lambda函数。它会返回一个map对象,这个对象可以被转化成可迭代对象,如列表或者元组。

NEWSPAPER3K

newspaper3k,如果你还没有见过它,那么你可能会被这个Python newspaper模块所惊艳到。

它可以让你检索到一系列国际领先出版物中的新闻和相关的元数据。你可以检索图片、文本和作者名。它甚至有一些内置的自然语言处理功能。所以,如果你正在考虑使用BeautifulSoup 或其他自制的爬虫库来应用于你的下一个项目。那么,省省时间和精力吧,你其实只需要$ pip install newspaper3k。

OPERATOR OVERLOADING(操作符重载)

Python支持操作符重载。“操作符重载”其实是个简单的概念,你是否曾经想过为什么Python可以让你使用“+”操作符来同时实现加法和连接字符串?这就是操作符重载在发挥作用。

你可以定义使用Python标准操作符符号的对象,这可以让你在特定的环境中使用特定的对象,就像下方的例子一样。

  1. class Thing: 
  2.     def __init__(self, value): 
  3.         self.__value = value 
  4.     def __gt__(self, other): 
  5.         return self.__value > other.__value 
  6.     def __lt__(self, other): 
  7.         return self.__value < other.__value 
  8. something = Thing(100) 
  9. nothing = Thing(0) 
  10. # True 
  11. something > nothing 
  12. # False 
  13. something < nothing 
  14. # Error 
  15. something + nothing 

PPRINT

Python的默认print函数可以满足日常的输出任务,但如果要打印更大的、嵌套式的对象,那么使用默认的print函数打印出来的内容会很丑陋。

这个时候我们就需要pprint了,它可以让复杂的结构型对象以可读性更强的格式显示。这对于经常要面对非普通数据结构的Python开发者来说是必不可少的工具。

  1. import requests 
  2. import pprint 
  3. url = 'https://randomuser.me/api/?results=1' 
  4. users = requests.get(url).json() 
  5. pprint.pprint(users) 

QUEUE(队列)

Python支持多线程,它是通过标准库中的Queue模块来实现的。这个模块可以让你实现队列数据结构。这种数据结构可以让你根据特定的规则添加和检索条目。

“先进先出”(FIFO)队列可以让你按照添加对象的顺序来检索他们。“后进先出”(LIFO)队列可以让你首先访问最近添加的对象。最后,优先队列可以让你根据他们排序的顺序进行检索。

_REPR_

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读