基本的Python字典问题

时间:2009-07-31 19:28:51

标签: python dictionary

我有一个包含一个键和两个值的字典,我想将每个值设置为一个单独的变量。

d = {'key':('value1,value2'),        'key2':('value3,value4'),        'key3':('value5,value6')}

我试过d [key] [0],希望它会返回“value1”,而是返回“v”

有什么建议吗?

5 个答案:

答案 0 :(得分:16)

更好的解决方案是将您的价值存储为两元组:

d = {'key' : ('value1', 'value2')}

这样,您不必在每次要访问值时进行拆分。

答案 1 :(得分:4)

尝试这样的事情:

d = {'key' : 'value1, value2'}

list = d['key'].split(', ')

list[0]将为“value1”,list[1]将为“value2”。

答案 2 :(得分:1)

我建议在你的字典中存储列表。它使参考更容易。例如,

from collections import defaultdict

my_dict = defaultdict(list)
my_dict["key"].append("value 1")
my_dict["key"].append("value 2")

print my_dict["key"][1] 

答案 3 :(得分:1)

获取这两个值并将它们分配给value1和value2:

for v in d.itervalues():
    value1, value2 = v.split(', ')

正如zenazn所说,我不认为这是一个明智的数据结构,使用元组或类来存储多个值会更好。

答案 4 :(得分:0)

您存储价值的方式,您需要以下内容:

value1, value2 = d['key'].split(', ')
print value1, value2

或迭代所有值:

for key in d:
    v1, v2 = d[k].split(', ')
    print v1, v2

但是,如果可以的话,你应该遵循zenazn关于将你的值存储为元组的建议,并避免每次都需要拆分。