finding a specific value from list of dictionary in python
我的字典列表中有以下数据:
1 2 3 4 | data = [{'I-versicolor': 0, 'Sepal_Length': '7.9', 'I-setosa': 0, 'I-virginica': 1}, {'I-versicolor': 0, 'I-setosa': 1, 'I-virginica': 0, 'Sepal_Width': '4.2'}, {'I-versicolor': 2, 'Petal_Length': '3.5', 'I-setosa': 0, 'I-virginica': 0}, {'I-versicolor': 1.2, 'Petal_Width': '1.2', 'I-setosa': 0, 'I-virginica': 0}] |
为了获得基于键和值的列表,我使用以下内容:
1 | next((item for item in data if item["Sepal_Length"] =="7.9")) |
号
但是,所有的字典都没有包含键
1 | KeyError: 'Sepal_Length' |
我怎么解决这个问题?
您可以使用
1 | next((item for item in data if item.get("Sepal_Length") =="7.9")) |
作为一个额外的好处,您实际上不需要在生成器表达式周围加上括号:
1 2 | # Look mom, no extra parenthesis! :-) next(item for item in data if item.get("Sepal_Length") =="7.9") |
号
但如果要指定默认值,它们会有所帮助:
1 | next((item for item in data if item.get("Sepal_Length") =="7.9"), default) |