我的代码在这里很糟糕,是否有改进它的pythonic方法?
我有三套:
set1 = {1,2,3}
set2 = {2,3,4}
set3 = {4,5,6}
Run Code Online (Sandbox Code Playgroud)
和一个组合集
combined = set1 | set2 | set3
Run Code Online (Sandbox Code Playgroud)
我需要一个dict来返回是否每个都设置了一个数字.
例如
d[2] = {'set1':True, 'set2':True, 'set3':False}
Run Code Online (Sandbox Code Playgroud)
我的代码是这样的:
def in_set(num):
d = {}
if num in set1:
d['set1'] = True
else:
d['set1'] = False
if num in set2:
d['set2'] = True
else:
d['set2'] = False
if num in set3:
d['set3'] = True
else:
d['set3'] = False
return d
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式简化:
def in_set(num):
return {
'set1': num in set1,
'set2': num in set2,
'set3': num in set3
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以创建映射在这些集合上的集合名称的字典,然后使用字典理解:
my_sets = {
'set1': set1,
'set2': set2,
'set3': set3
}
def in_set(num):
return {
k: num in v
for k, v in my_sets.items()
}
Run Code Online (Sandbox Code Playgroud)
在这里,我们可以轻松地更改集合(或其名称),从而例如使用更多/其他集合.
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |