Python 3.x 为什么j总是从string';猕猴桃;?

Python 3.x 为什么j总是从string';猕猴桃;?,python-3.x,Python 3.x,请解释这个输出是如何产生的。为什么j总是从字符串“kiwi”中取i,以及冒号在集合理解中是什么意思。您编写它的方式实际上是一个嵌套的for循环。由于“i”是“kiwi”中的最后一个字母,最终所有的“j”都变成了“i” 例如,当i='a'时,以下情况发生{a:k},{a:i},{a:w},{a:i},并在{a:i}处停止 >>> a={i:j for i in "abcd" for j in "kiwi"} >>> a {'a': 'i', 'b': 'i',

请解释这个输出是如何产生的。为什么j总是从字符串“kiwi”中取i,以及冒号在集合理解中是什么意思。您编写它的方式实际上是一个嵌套的for循环。由于“i”是“kiwi”中的最后一个字母,最终所有的“j”都变成了“i”

例如,当i='a'时,以下情况发生{a:k},{a:i},{a:w},{a:i},并在{a:i}处停止

>>> a={i:j for i in "abcd" for j in "kiwi"}
>>> a
{'a': 'i', 'b': 'i', 'c': 'i', 'd': 'i'}
>>>
编辑:澄清原始代码在做什么。Python有很多速记语法糖

a={i:j for i, j in zip("abcd", "kiwi")}

冒号
表示这实际上是一个字典理解,而不是一个集合如果我的答案有帮助,请接受并投票!谢谢
a={i:j for i in "abcd" for j in "kiwi"} is actually closer to this:

d = {}
for i in "abcd":
    for j in "kiwi":
        d[i] = j 
return d