2014-07-02 60 views
2

使用Python我有一些代碼,看起來像這樣:的Python字典有三個值環

for (key, value) in files: 
    ... 

的一個工作列表上方的可能是:

files = [(
    'key1', 'value1' 
), ...] 

我現在發現這個代碼:

for (key, filename, value) in files: 
    ... 

將如何字典看,我讓keyfilenamevalue

+3

不,第一個循環會**不解開你的字典。這不是可以工作的代碼; '文件'預計是'(鍵,值)'*序列*的列表。 –

+0

@MartijnPieters,太好了。錯過了。我已經更新了這個問題,即使我認爲你已經明確了... – Asken

+4

我想你現在知道如何自己回答這個問題了,不是嗎? :-) –

回答

3

你想要一個字典或像你提供的列表嗎?如果你想保留它作爲一個列表,你可以擴展這個元組來獲得三個項目,而不是像這樣。我從你的措辭中假設你想知道文件變量是什麼樣子以適應這個循環。這應該足夠了:

files = [ 
     ('key1', 'file1', 'value1'), 
     ('key2', 'file2', 'value2'), 
     ('key3', 'file3', 'value3') 
     ] 

for (key, file, value) in files: 
    print key, file, value 

>>key1 file1 value1 
>>key2 file2 value2 
>>key3 file3 value3 

如果你希望它是你可能會想格式化這樣一個字典:

files = { 
     'key1': ('file1', 'value1'), 
     'key2': ('file2', 'value2'), 
     'key3': ('file3', 'value3') 
     } 

for key, value in files.iteritems(): 
    print key, value[0], value[1] 

>>key3 file3 value3 
>>key2 file2 value2 
>>key1 file1 value1 

但是要知道,字典的將不保留項目的順序如果這對你很重要。

+1

你需要代表:) – Asken