Skip to main content
 首页 » 编程设计

python之你如何用 Python 中的列表交叉检查字典

2025年05月04日18mate10pro

假设我有一个列表

list: [keith, roger, david], [5, nobody, 31], [attack, thomas, 4] 

和字典

dictionary: '55': <Trachea>, 'Roger': <Bert> 

我想删除字典中与列表列表的第二部分不匹配的项目。在这个例子中,我想摆脱 '55': 但不是 'Roger': 。谢谢!

请您参考如下方法:

#!/usr/bin/python3 
 
# myList = [['keith', 'roger', 'david'], [5, 'nobody', 31], ['attack', 'thomas', 4]] 
# myDict = {'55': '...', 'roger': '...'} 
 
secondElements = {x[1] for x in myList} 
 
filteredDict = {k:v for k,v in myDict.items() if (k in secondElements)} 
 
print(filteredDict) 
# prints: {'roger': '...'} 

有一些更快的方法可以做到这一点,但是制作一组 secondElements 将加速查询并使其成为 O(1) 时间。我编辑了您的列表,因为存在区分大小写的问题,但您也可以使用 (k.lower() in secondElements)。