list1=[1,2,3,4,5,]
list1_iter=list11.__iter__() 所有的迭代器对象都是可迭代对象反之不成立 还要next方法 字符串等等都就没有next方法但是可以经iter转为迭代器对象
print(list1_iter.__next__())
print(list1_iter.__next__())
print(list1_iter.__next__())
for 循环原理
将 in 后面刻碟带对象转换成迭代器对象,将里面每个值用next取出赋值给in前面变量,直到异常
但凡函数内出现yield关键字,再去调用函数不会立即执行函数体代码,会得到一个返回值,该返回值就是生成器对象,即自定义的迭代器
‘‘‘
# #
def func():
print(‘first‘)
yield 1
print(‘second‘)
yield 2
print(‘third‘)
yield 3
yield后函数不执行 next一次执行一次 next(func())
并且yield可以返回值 与return不同的是yield可以让函数暂停在某处,并可以多次获得yield值
是一种自定义迭代器
print(format(0xa,‘x‘))
format(‘13415’,‘o’)转八进制 d10 x16 c unicode码 b二进制 n也是10 空默认10 x字母大写 转换大写
format(‘13441.4635’,‘f’)小数点计数 默认6 ‘e’ 科学计数默认6 0.8f 8位
‘my name is {} ,age {}‘.format(‘hoho‘,18) ‘my name is hoho ,age 18‘
import heapq
# nums=[1,3,5,65,-9,23,45,0]
# print(heapq.nlargest(4,nums))
# print(heapq.nsmallest(4,nums))
#
# dic=[
# {‘name‘:‘Tom‘,‘salary‘:2000},
# {‘name‘:‘Tony‘,‘salary‘:2333},
# {‘name‘:‘Hoowk‘,‘salary‘:4000},
# {‘name‘:‘Mr3‘,‘salary‘:1000}
# ]
# print(heapq.nlargest(3,dic,lambda x:x[‘salary‘]))
dic=[
{‘name‘:‘Tom‘,‘salary‘:2000},
{‘name‘:‘Tony‘,‘salary‘:2333},
{‘name‘:‘Hoowk‘,‘salary‘:4000},
{‘name‘:‘Mr3‘,‘salary‘:1000}]
# for i in dic:
print(dic.sort(key=lambda x:x[‘salary‘],reverse=True))
print(dic)
print(sorted(dic,key=lambda x:x[‘salary‘],reverse=True))
原文:https://www.cnblogs.com/wrqysrt/p/10453257.html