我正在尝试从列表中过滤项目,我收到语法错误: SyntaxError:语法无效
代码:
a['name'] = 'Dan'
b['name'] = 'Joe'
ppl = [a,b]
inputName = raw_input('Enter name:').strip()
person = [p in ppl if p['name']==inputName].pop()
任何想法?
答案 0 :(得分:8)
[item for item in array]
不
[item in array]
答案 1 :(得分:1)
首先,如果你想使用'name'键,你应该使用dictionary而不是list。看起来应该是这样的
a = {'name':'Dan'}
b = {'name':'Joe'}
ppl = [a,b]
for p in ppl:
if(p['name']==inputName):
person=ppl.pop(ppl.index(p))
也许有一种更好的方式,更多的pythonic,但这一个工作;)
答案 2 :(得分:0)
我同意Bogna Anna Ka,使用字典。
在我看来,这有点像pythonic:
a = {'name':'Dan'}
b = {'name':'Joe'}
ppl = [a,b]
for key, value in ppl.iteritems()
if(key == inputName):
person = value
迭代键值对,而不是创建键列表并迭代它们(对于ppl中的,隐式执行)并执行get(),pop()和指数()