如何检查字典中的任何值中是否存在任何键?

2024-09-30 01:37:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这本字典:

{
'Bob': ['Paul', 'Mark', 'Carol', 'Leanne', 'Will'],
'Carol': ['Mark', 'Leanne'],
'Farley': ['Paul'],
'Leanne': ['Sarai'],
'Larry': ['Carol', 'Mark', 'Leanne', 'Will'],
'Mark': ['Philip', 'Zach'],
'Paul': ['Zach'],
'Will': ['Leanne', 'Mark'],
'Zach': ['Philip']
}

并且需要拿出代码来检查任何值中是否存在任何键。rgwb需要打印任何未出现在任何值中的键。(应该打印BobFarleyLarry。)我该如何做呢?理想情况下,不使用break


Tags: 代码字典philipwillbobmark理想larry
2条回答

返回“没有出现在任何值中的键”

import itertools
all_values = list(itertools.chain.from_iterable(my_dict.values()))
print(*[x for x in my_dict.keys() if x not in all_values],sep=', ')

希望这有助于

解决方案1:使用set减号运算符。见https://docs.python.org/3/tutorial/datastructures.html#sets

keys = mydict.keys()
for values in mydict.values():
    keys = keys - set(values)
print(keys)

输出:{'Bob','Larry','Farley'}

解决方案2:使用set.union

keys = mydict.keys()

## convert list of lists to list of sets
values = [set(x) for x in mydict.values()]
values = set.union(*values)
print(keys - values)

输出:{'Bob','Larry','Farley'}

相关问题 更多 >

    热门问题