python 中的 for 和 zip
0

zip函数特殊的for迭代:
###########################################
描述
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
语法
zip 语法:
zip([iterable, ...])
参数说明:
iterabl -- 一个或多个迭代器;
返回值
返回元组列表。

###############################################################
我们先比较一下下面案例:
In [3]: {key:value for key in "ABC" for value in "JKL"}
Out[3]: {'A': 'L', 'B': 'L', 'C': 'L'}

In [4]: {key:value for key,value in zip('abc','jkl')}
Out[4]: {'a': 'j', 'b': 'k', 'c': 'l'}
可以发现for循环后字典中的值都是一样的;那我们先分析看看:
In [6]: for key in 'abc':
...: for value in 'jkl':
...: d[key] = value
...: print(d)
...:
{'a': 'j'}
{'a': 'k'}
{'a': 'l'}
{'a': 'l', 'b': 'j'}
{'a': 'l', 'b': 'k'}
{'a': 'l', 'b': 'l'}
{'a': 'l', 'b': 'l', 'c': 'j'}
{'a': 'l', 'b': 'l', 'c': 'k'}
{'a': 'l', 'b': 'l', 'c': 'l'}
这样写一下,你就会明白原因。
字典key唯一,相同key,新值覆盖原来的值

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
0
收藏
0
排名:42
访问:156
私信
博客标签