2017-01-29 30 views
0

對不起,我有點新來python和任何幫助表示讚賞。嘗試使用變量爲字典鍵分配2個或更多值?

我想使用提示時給定值的變量爲字典鍵指定2個值。我不斷收到此錯誤信息:

Traceback (most recent call last): 
File "C:\Users\Fader\Desktop\List creator.py", line 41, in <module> 
myLists[key].append(edit) 
AttributeError: 'str' object has no attribute 'append' 

這是我到目前爲止有:

print (list(myLists.keys())) 
    key=input("What List would you like edit?") 
    myLists.setdefault(key, []) 
    edit=input("What would you like to add?") 
    myLists[key].append(edit) 

我試着去提示的關鍵。將該鍵設置爲默認值,然後提示進行編輯並將編輯追加到指定的鍵。

+1

'setdefault'只在不存在的情況下設置密鑰,如果已經有一個密鑰,那麼'myLists.setdefault(key,[])'什麼也不做。 –

回答

0

我認爲,而不是default你的意思是initial值。

請更改第三行到這一點,並檢查是否這是你的意思:

myLists[key] = [] 
0

由於阿什維尼·喬杜裏提到的,這是發生最有可能的原因是因爲你已經在字典中的關鍵像那樣。你可以試試這個以清除現有的值:

myLists[key] = myLists[key] if isinstance(myLists.get(key), list) else []) 

或者如果由於某種原因,你想保持一個已經存在的話:

myLists[key] = myLists[key] if isinstance(myLists.get(key), list) else 
       [myLists[key]] if isinstance(myLists.get(key), str) else 
       [] 

,但有可能是一些其他的數據處理方法,你應該這樣做:P