我试图从名单中筛选的项目,我得到一个语法错误: 语法错误:无效的语法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()和索引()
我猜这不是完整的代码片段,所以你可以指定哪一行引发异常)? –