在代碼中,要創建一個空的列表
values = []
然後,創建一個字典{newvalue : oldvalue}
只有一個元素oldvalue
,其關鍵是newvalue
。最後,您通過方法append
將此字典添加到列表中。是的,在Python中,將字典作爲列表和列表的元素作爲字典的元素(甚至是它們的鍵)是絕對有效的。但是,這很可能不是你想要實現的。
如果你想要的是與元素newvalue
和oldvalue
名單,你應該寫:
values= []
values.append(newvalue)
values.append(oldvalue)
或者乾脆
values= [newvalue, oldvalue]
如果你想要的是一個單一的元素oldvalue
字典由鑰匙newvalue
確定,你應該寫:
values= {}
values[newvalue]= oldvalue
或者乾脆
values= {newvalue: oldvalue}
您的代碼不工作,因爲values
最初是空的,所以for
循環不會重複的。你可能是打算是:
values= {}
if newvalue not in values.keys(): # "newvalue not in values" is shorter but can be misleading
values[newvalue]= oldvalue
或
values= {}
if values[newvalue] is None:
values[newvalue]= oldvalue
此外,values.update({newvalue: oldvalue})
是同義詞values[newvalue]= oldvalue
,但你似乎是試圖用這種形式的混合,並列出了做values.append({newvalue: oldvalue})
。同樣,字典不是單元素字典列表(這是你正在構建和試圖操作的)。
你想在這裏做什麼?您正在構建一個詞典列表,每個詞典都有一個鍵和值。你想要建立一個字典嗎? –
如果是這樣,則執行'values = {}',然後'values [newvalue] = oldvalue'。 –
這就是我發現很難理解字典和列表之間的區別的問題......任何幫助? – user9517536248