【发布时间】:2013-06-03 19:17:30
【问题描述】:
我正在尝试用列表中的值替换字典中的值。
我有:
list1 = ['10 2', '8 6']
d = {'0.25': ['11 3', '9 1'], '0.75': ['3 9'], '0.5': ['10 12', '6 0'], '0.0': ['1 8']}
我希望我的字典看起来像:
dFinal = {'0.25': ['10 2'], '0.75': ['3 9'], '0.5': ['8 6'], '0.0': ['1 8']}
一般来说,如果我的键的值是包含两个项目的列表,我想用 list1 中的特定项目替换该值。我希望该方法适用于具有任意数量项目的 list1,这似乎是我的问题。
到目前为止,我得到了:
for key in d:
if len(d[key]) == 2:
d[key] = list1[0]
但它只用一个值替换所有内容,我想避免调用静态索引,因为我的 list1 的长度可能会有所不同......我错过了某种循环吗?
干杯!
【问题讨论】:
-
为什么
['11 3', '9 1']被['10 2']和['10 12', '6 0']被['8 6']取代。来自list1的项目作为替代品的一般规则是什么? -
请注意,字典不能保证保留键的顺序。
-
对,字典中的键没有排序。您希望在哪个订单中替换它们?
-
规则是 list1 中的第一项将 value 的第一个实例替换为两项。我不知道顺序可能会改变...... list1 中的项目是平均值:对于“11 3”和“9 1”,平均值是“10 2”
-
@kate88 字典中没有“第一个值”这样的东西。您希望如何订购您的钥匙?按价值?按插入时间?
标签: python list dictionary