🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972
个人介绍: 研一|统计学|干货分享
擅长Python、Matlab、R等主流编程软件
累计十余项国家级比赛奖项,参与研究经费10w、40w级横向
【Python操作基础】系列——字典/迭代器和生成器操作,建议收藏!
该篇文章首先利用Python展示了使用字典类型数据的相关操作以及迭代器和生成器操作,包括字典的定义方法、主要特征;迭代器和生成器中的可迭代对象与迭代器、生成器与迭代器等。
1 字典
1.1 定义方法
运行程序:
myDict1 = {'name': 'Jerry', 'age': 23,9:20}
myDict1
myDict2={2:2,2:3,4:5}
myDict2
运行结果:
{'name': 'Jerry', 'age': 23, 9: 20}
{2: 3, 4: 5}
1.2 主要特征
运行程序:
myDict1 = {'name': 'Jerry', 'age': 23,9:20}
myDict1['name'] #提取key对应值
myDict1[9] ##提取key对应值
20
myDict1 = {'name': 'Jerry', 'age': 23,9:20}
myDict1['name']="chao"
myDict1 #修改key对应值
#dct3={[2,3]:[4,4], 5:5} #报错,字典不能为不可嘻哈对象
运行结果:
'Jerry'
20
20
{'name': 'chao', 'age': 23, 9: 20}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-45-4f59b769dfbf> in <module>
8 myDict1 #修改key对应值
9
---> 10 dct3={[2,3]:[4,4], 5:5}
TypeError: unhashable type: 'list'
2 迭代器与生成器
2.1 可迭代对象与迭代器
运行程序:
#能接收可迭代对象的函数都可以接收迭代器,可迭代对象不一定是迭代器
myList=[1,2,3,4,5]
#next(myList) #报错,myLit虽属于“可迭代对象”,但不是“迭代器”
myIterator=iter(myList)#可利用iter将可迭代对象转化为迭代器
print(next(myIterator))
print(next(myIterator))
print(next(myIterator))
运行结果:
1
2
3
2.2 生成器与迭代器
运行程序:
def myGen(): #生成器:生成一个新的迭代器函数
x=range(1,11)
for i in x:
yield i+2 #生成器不用return函数,而用yield函数
myGen()
for x in myGen():
print(x,end=",")
运行结果:
<generator object myGen at 0x000002CD427E32A0>
3,4,5,6,7,8,9,10,11,12,