列表过滤的python语法错误

时间:2012-09-19 10:47:03

标签: python

我正在尝试从列表中过滤项目,我收到语法错误: 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()

任何想法?

3 个答案:

答案 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()和指数()