从列表python2.7检索值

时间:2018-08-20 19:01:08

标签: python python-2.7

我的列表如下:

list = [{u'Value': u'Value1', u'Key': u'Key1'}, {u'Value': u'value2', u'Key': u'key2'}]

我想检索value1,但仅当key1匹配特定字符串时,我不确定是否必须对此进行两次迭代?

2 个答案:

答案 0 :(得分:0)

您可以在列表理解中添加防护以充当过滤器

[d[u"Value"] for d in list if d[u"Key"] == u"Key1"]

您还应避免掩盖list之类的内置名称

答案 1 :(得分:0)

否,您不需要遍历列表两次:

value = None
for d in list:
    if d[u"Key"] == u"Key1":
        value = d[u"Value"]

可以使用next()和生成器将其写成一行:

value = next((d[u"Value"] for d in list if d[u"Key"] == u"Key1"), None)