转换为集合理解

Convert to set Comprehension

我是 Python 的新手,我正在尝试将其中包含 if else 语句的循环转换为理解,但似乎无法破解它...

希望大家能帮帮我?

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
for key in list(Dict.keys()):
   if key in list(Boys.keys()):
       print(True)
   else:
       print(False)

我试过以下...

a = {key for key in list(Dict.keys()) if key in list(Boys.keys())}
b = {key if key in list(Boys.keys()) else False for key in list(Dict.keys())}
c = {key in list(Boys.keys()) if key else False for key in list(Dict.keys())}
print(c)

你想要的可以简化:

c = [key in Boys for key in Dict]
print(c)

输出:

[True, True, False, True]

这表明前两个和最后一个是男孩的名字。

此外,您不需要 set(),因为集合仅包含唯一值。当值为 TrueFalse 时,一个集合只能包含 0、1 或 2 个值。

a = [ True if key in Boys else False  for key in Dict ] 

应该可以解决问题,您只需要更改顺序即可。

输出:

[True, True, False, True]

您需要做两件事才能完成,

1.更改顺序并删除不必要的 list() 和 keys()

2。使用列表理解而不是字典理解

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}  
a = [True if key in Boys.keys else False for key in Dict]
print(a)