列表筛选的python语法错误
我试图从列表中筛选一个项目,但出现语法错误: 语法错误:无效语法 守则:列表筛选的python语法错误,python,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() 有什么想法吗?[数组中的项目对应项目] 不 [数组中的项]首先,如果要使用“name”键,应该使用字典而不是列表。应该是这样的
a['name'] = 'Dan'
b['name'] = 'Joe'
ppl = [a,b]
inputName = raw_input('Enter name:').strip()
person = [p in ppl if p['name']==inputName].pop()
有什么想法吗?
[数组中的项目对应项目]
不
[数组中的项]
首先,如果要使用“name”键,应该使用字典而不是列表。应该是这样的
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 Anna Ka的观点,使用字典 在我看来,这有点像蟒蛇:
a = {'name':'Dan'}
b = {'name':'Joe'}
ppl = [a,b]
for key, value in ppl.iteritems()
if(key == inputName):
person = value
您迭代键值对,而不是创建一个键值列表并迭代它们(ppl中p的隐式迭代:),然后执行get()、pop()和index()我猜这不是完整的代码段,所以您可以指定哪一行引发异常吗)?我添加了一个与您类似的答案,但有一点小小的变化——它不适合放在评论框中。。