讨论/技术交流/字典推导式求助/

求问为什么这个字典推导式所有的value都是1呢,然后range里面最大值是多少就会是多少,完全没懂求大佬解答

dict_a = {key: value for key in 'python' for value in range(2)}
print(dict_a)
result:
{'p': 1, 'y': 1, 't': 1, 'h': 1, 'o': 1, 'n': 1}
共 4 个回复

我都没有看懂,你本来希望这个字典长什么样?如果你希望 pythonpython 中的六个字符分别对应 050\sim 5 的话,可以这样写:

dict_a = {key: value for key,value in zip('python',range(6))}
print(dict_a)

输出为:

{'p': 0, 'y': 1, 't': 2, 'h': 3, 'o': 4, 'n': 5}
1

谢谢老哥,讲得很清楚,感谢感谢

哦哦哦哦哦是我煞笔了哈哈哈哈哈哈谢谢老哥

你这个写法等价于
dct={}
for k in “python”:
for v in range(2):
dct【k】= v
range(2)循环两次 第一次赋值dct【k】为0,第二次赋值k为1 替换掉了0
兄弟 基础太弱了哦