2009-07-31 106 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的建議將你的值存儲爲元組,並避免每次都需要分割。