我試圖從名單中篩選的項目,我得到一個語法錯誤: 語法錯誤:無效的語法Python語法錯誤
代碼:
a['name'] = 'Dan'
b['name'] = 'Joe'
ppl = [a,b]
inputName = raw_input('Enter name:').strip()
person = [p in ppl if p['name']==inputName].pop()
有什麼想法?
我試圖從名單中篩選的項目,我得到一個語法錯誤: 語法錯誤:無效的語法Python語法錯誤
代碼:
a['name'] = 'Dan'
b['name'] = 'Joe'
ppl = [a,b]
inputName = raw_input('Enter name:').strip()
person = [p in ppl if p['name']==inputName].pop()
有什麼想法?
[item for item in array]
不 [item in array]
首先,你應該使用字典而不是列表,如果你想用「名」鍵。它應該是這樣的
a = {'name':'Dan'}
b = {'name':'Joe'}
ppl = [a,b]
for p in ppl:
if(p['name']==inputName):
person=ppl.pop(ppl.index(p))
也許有更好的方法,更Python,但是這一次的工作;)
我已經添加了一個類似於您的答案,但略有扭曲 - 它不適合在評論框中。 –
我Bogna安娜家同意,使用字典。
這是在我看來,更Python一點:
a = {'name':'Dan'}
b = {'name':'Joe'}
ppl = [a,b]
for key, value in ppl.iteritems()
if(key == inputName):
person = value
您遍歷鍵值對,而不是創建密鑰列表並超過他們迭代(其中對於p中的脂肪酶:含蓄)和做的get(),pop()和索引()
我猜這不是完整的代碼片段,所以你可以指定哪一行引發異常)? –