假設我有以下字典串列和一個字典
dicts = [
{"lang": "Java", "version": "14", "name": "Java 14"},
{"lang": "Python", "version": "3.8", "name": "Python 3.8"},
{"lang": "C ", "version": "17", "name": "C 17"},
]
record = {'lang': 'Python', 'version': '3.8'}
我怎樣才能在“dicts”中找到“record”,基于“record”只有三個鍵值對中的兩個?
輸出將是
{"lang": "Python", "version": "3.8", "name": "Python 3.8"}
uj5u.com熱心網友回復:
>>> dicts = [
{"lang": "Java", "version": "14", "name": "Java 14"},
{"lang": "Python", "version": "3.8", "name": "Python 3.8"},
{"lang": "C ", "version": "17", "name": "C 17"},
]
>>> record = {'lang': 'Python', 'version': '3.8'}
>>> [d for d in dicts if all(d[k] == v for k, v in record.items())]
[{'lang': 'Python', 'version': '3.8', 'name': 'Python 3.8'}]
如果你確定只有一個匹配(或者你只關心得到一個而不關心哪個),你可以next使用生成器運算式呼叫它:
>>> next(d for d in dicts if all(d[k] == v for k, v in record.items()))
{'lang': 'Python', 'version': '3.8', 'name': 'Python 3.8'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384565.html
