通过可迭代对象,迭代器,理解dict,list,filter,map,zip,dict,list之间的联系
"""
理解迭代器原理后,无意中将以前的困扰的难点解开了。为什么有些对象,比如zip,filter,map对象能够使用list和dict方法转换
有些却不行,一切的一切都是和可迭代对象以及迭代器的概念有关
下面以zip为例
"""
a = ['age', 'height']
b = [18, '17cm']
c = zip(a, b) # 返回来的是 zip对象,该对象中存在iter和next方法,则是一个迭代器,同样是一个可迭代对象
print(c.__next__()) # 因此可以直接输出:('age', 18),和能够使用for循环的原因
"""
dict,list与可迭代对象之间的关系
dict 接收可迭代对象作为参数,将对象中的每个元素转换成字典(前提是里面每个元素都是可迭代对象,且有两个元素,例如(age,18) 或 [age,18]
list 接收可迭代对象作为参数,将对象中的每个元素添加到列表中,具体使用如下
注意事项:list 和dict内部的实现同样是以for循环进行遍历添加属性到列表的,因此当使用list或dict遍历完后,下面再使用dict或list会得到空列表或字典
"""
print(list(c)) # 将每个值作为元素添加到列表 [('age', 18), ('height', '17cm')]
print(dict(c)) # {'age': 18, 'height': '17cm'}
print(dict(list(c))) # {'age': 18, 'height': '17cm'}
本文来自博客园,作者:中州韵,转载请注明原文链接:https://www.cnblogs.com/zhongzhouyun/p/15315091.html