You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用zip()将等长列表转字典,为何生成的两个字典长度不同?

问题原因解析

这是因为Python字典的键具有唯一性——当同一个键多次出现时,后面的键值对会直接覆盖前面的条目,最终每个键只会保留最后一次对应的取值。

针对字典a的情况

wordslist中存在大量重复单词(比如"I"、"you"、"will"等都重复出现多次),用dict(zip(wordslist, keylist))生成字典时,每遇到重复单词,就会用该单词最后一次对应的keylist值覆盖之前的条目。统计wordslist里的唯一单词数量,正好是25个,所以字典a的长度为25。

针对字典b的情况

keylist中的元素是数字,其中唯一的数字只有1、2、3、4、5、6、7、8这8个,同理,每个数字最后一次对应的wordslist单词会被保留,前面的都被覆盖,因此字典b的长度为8。

简化示例验证

用一个小例子就能直观看到这个机制:

keys = ['x', 'x', 'y']
values = [10, 20, 30]
result = dict(zip(keys, values))
# 输出结果为 {'x': 20, 'y': 30},重复的'x'只保留最后一次的取值

内容的提问来源于stack exchange,提问作者Godfather_NKP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 13:36:04