gpt4 book ai didi

Python for 循环索引

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:06 26 4
gpt4 key购买 nike

我正在以 Mark Lutz 的书 Learning Python 为例。

keys = ['spam','eggs','toast']
vals=[1,4,7]

D2={}
for (v,k) in zip(keys, vals): D2[k] = v
D2
{1: 'spam', 4: 'eggs', 7: 'toast'}

我的例子:

 D1={}

for (k,v) in zip(keys, vals): D1[k] = v
D1
{'toast': 7, 'eggs': 4, 'spam': 1}

所以,我还是不懂索引,为什么是for(v,k)?

最佳答案

unpacking键和值列表的压缩列表的每个元组中的键和值,然后分配键/值对。括号是不必要的 for v, k in zip(keys, vals) 也可以。你的代码和书上的代码的区别在于 v,k 的顺序,你使用 keys 列表作为键,而书上是相反的。

您也可以在压缩项目上调用 dict 一步创建 dict,如果您反转传递给 zip 的列表的顺序,那么您将得到完全相同的行为:

D2 = dict(zip(keys, vals))

print D2

D2 = dict(zip(vals, keys))

print(D2)

{'toast': 7, 'eggs': 4, 'spam': 1}
{1: 'spam', 4: 'eggs', 7: 'toast'}

唯一的区别是顺序。列表被命名为键和值的事实可能有点令人困惑,因为值最终成为键,反之亦然,但要理解的主要事情是您在循环中将 k 分配给来自keys 列表和书中的代码是相反的。

关于Python for 循环索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30233705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com