python - 字典列表检查键 :value

标签 python list dictionary

更新:为了清楚起见,我想检查“姓名”和“姓氏”的键值,并且仅当这些不在列表中时才添加。

我有:

lst = [{'name':'John', 'last':'Smith'.... .... (other key-values)... }, 
{'name':'Will', 'last':'Smith'... ... (other key-values)... }]

只有当它与现有词典不完全相同时,我才想将新词典附加到此列表中。

换句话说:

dict1 = {'name':'John', 'last':'Smith'} # ==> wouldn't be appended

但是……

dict2 = {'name':'John', 'last':'Brown'} # ==> WOULD be appended

有人可以用英语解释解决方案中发生的事情的最简单方法吗?谢谢!

引用:Python: Check if any list element is a key in a dictionary

最佳答案

由于您要求一种只检查两个键的方法,即使字典中有其他键也是如此:

name_pairs = set((i['name'], i['last']) for i in lst)
if (d['name'], d['last']) not in name_pairs:
    lst.append(d)

关于python - 字典列表检查键 :value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219011/

相关文章:

python - 聊天服务器如何向多个客户端分发消息?

python - 比较 Pandas 中一列中的 2 个重复值

python - 用另一个列表遍历一个列表

ios - Alamofire 参数未正确序列化

python - 如何借助数据透视表填充 NaN 值?

python - 在 Windows 上使用 Python 中的 Selenium 和 GhostDriver

c# - 我如何对 List<Tuple<int, double>> 进行排序

python - 使用复合键从字典写入 csv 文件

c++ - 根据类私有(private)成员对包含类的列表进行排序

JAVA:如何接受发送到方法的参数作为方括号中的逗号分隔字符?