是否可以更改字典中的值,保持键值不变?

时间:2014-02-24 14:30:11

标签: python-2.7 dictionary

我需要一些关于修改字典中值的说明,保持键不变。根据问题定义,我有一个列表作为值。程序运行一个循环,并且必须将值分组到它的父级(这是钥匙)。那么,只要条件满足,是否可以在列表中添加元素?

例如:将可被4整除的数字分组并将其存储在字典中。

d={}
l=[]
for i in range(100):
    if(i%4==0):
        d.update({'Four':l.append(i)})

2 个答案:

答案 0 :(得分:1)

我认为你想要的是:

d = {'Four': []}
for i in range(100):
    if not i % 4:
        d['Four'].append(i)

或者你可以使用列表理解:

d = {'Four': [i for i in range(100) if not i % 4]}

不管怎样,你得到:

d == {'Four': [0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 
               44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 
               84, 88, 92, 96]}

如果您只有'Four',则可以使用collections.defaultdict

from collections import defaultdict

d = defaultdict(list)
for i in range(100):
    if not i % 4:
        d['Four'].append(i)

或者自己“手动”做同样的事情:

d = {}
for i in range(100):
    if not i % 4:
        if 'Four' not in d:
            d['Four'] = []
        d['Four'].append(i)

答案 1 :(得分:1)

是的,您可以在字典中编辑项目。

看看你的例子:

d={}
for i in range(100):
    if(i % 4 == 0):
        # Update our list with the new one.
        if d.has_key('Four'):
            d['Four'].append(i)
        else:
            d['Four'] = [i]