如何将字典中的值更改为列表而不是字符串

时间:2014-11-17 03:04:39

标签: python dictionary

我有:

dict1 = {'usa' : '10', 'japan' : '20', 'canada' :'30'} 

我尝试更改值以显示为列表,例如:

dict1 = {'usa' : [10], 'japan' : [20], 'canada' : [30]} 

我试过迭代字典中的值,但输出没有改变......

for v in dict1.values():
    v = list(v) 

2 个答案:

答案 0 :(得分:1)

您当前的代码无效,因为您的循环只是反复将名称v重新分配给list(v)。它实际上并没有更改dict1内的值。

最简单的方法是使用dict comprehension

>>> dict1 = {'usa' : '10', 'japan' : '20', 'canada' :'30'}
>>> {k:[int(v)] for k, v in dict1.items()}
{'japan': [20], 'canada': [30], 'usa': [10]}
>>>

请注意,在Python 2.x中,您应该执行dict1.iteritems()以避免创建不必要的列表。

答案 1 :(得分:0)

只需简单地遍历字典:

for i in dict1:
    dict1[i] = [int(dict1[i])]

print dict1

会给你:

{'canada': [30], 'japan': [20], 'usa': [10]}

你也可以使用字典理解(如iCodez所建议的那样),但是对于一个刚接触python的人来说,这可能更难掌握,也更短。