2009-07-31 193 views
2

我有一个关键字和两个值的字典,我想将每个值设置为一个单独的变量。基本Python字典问题

d = { '键':( '值1,值'), 'KEY2':( '值3,值4'), 'KEY3':( '值5,value6')}

我尝试d [关键] [0]在希望它会返回“value1”,而是它返回“v”

任何建议?

+0

这不是“两个值”,它是一个值:一个字符串。 – Javier 2009-07-31 19:42:21

+0

你对这个问题的编辑已经导致答案不再有任何意义...... – 2009-07-31 22:06:00

回答

16

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

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

这样,你没有,你要访问的值每一次分裂。

4

尝试这样:

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

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

list[0]将 “值1” 和list[1]会 “VALUE2”。

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] 
1

要获得这两个值并将其分配给值1和值2:

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

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

0

你存储你的价值观,你需要的东西喜欢的方式:

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

或遍历所有的值:如果你能

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

但是,你应该按照zenazn的建议将你的值存储为元组,并避免每次都需要分割。