from collections import Counter breakfast=['spam','spam','eggs','spam'] breakfast_counter=Counter(breakfast) breakfast_counter #Counter({'eggs': 1, 'spam': 3}) #函数 most_common() 以降序返回所有元素,或者如果给定一个数字,会返回该数字前的的元素
breakfast_counter.most_common() #[('spam', 3), ('eggs', 1)]
breakfast_counter.most_common(1) #[('spam', 3)] #可以组合计数器
lunch=['eggs','eggs','bacon'] lunch_counter=Counter(lunch) lunch_counter #Counter({'bacon': 1, 'eggs': 2}) #第一种组合计数器的方式是使用 + 从一个计数器加上另一个
breakfast_counter+lunch_counter #Counter({'bacon': 1, 'eggs': 3, 'spam': 3}) #第二种组合计数器的方式是使用 - 从一个计数器去掉另一个
breakfast_counter-lunch_counter #Counter({'spam': 3})
lunch_counter-breakfast_counter #Counter({'bacon': 1, 'eggs': 1}) #第三种组合计数器的方式是使用 & 得到二者共有的项
breakfast_counter&lunch_counter #Counter({'eggs': 1})
结论:尽量减少使用闭包
1、有的闭包可以使用两个函数分开来写,简单易读。
2、如果不使用nonlocal,可以读取作用域外的变量,但是不能修改,使用nonlocal,可以读取和修改,容易出bug,慎用!
要想创建一个iterator,必须实现一个有__iter__()和__next__()方法的类,类要能够跟踪内部状态并且在没有元素返回的时候引发StopIteration异常。
这个过程很繁琐而且违反直觉,Generator能够解决这个问题。
python generator是一个简单的创建iterator的途径,前面介绍那些繁琐的步骤都可以被generator自动完成。
简单来说,generator是一个能够返回迭代器对象的函数。
from sympy import * x=symbols('x') solve(15.38*x+12.12*(1-x)*0.9-12.12,x) Out[13]: [0.271019677996422]
try: <语句> #运行别的代码 except <名字>: <语句> #如果在try部份引发了'name'异常 except <名字>,<数据>: <语句> #如果引发了'name'异常,获得附加的数据 else: <语句> #如果没有异常发生
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。