我有:
dict1 = {'usa' : '10', 'japan' : '20', 'canada' :'30'}
我尝试更改值以显示为列表,例如:
dict1 = {'usa' : [10], 'japan' : [20], 'canada' : [30]}
我试过迭代字典中的值,但输出没有改变......
for v in dict1.values():
v = list(v)
答案 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的人来说,这可能更难掌握,也更短。