Python 是否有一个函数可以用另一本词典过滤我的词典?
我正试图在词典位置\u SUPPLY\u打开时筛选词典位置。 如果LOCATION\u SUPPLY\u OPEN的值等于1,则新的\u dict中的键(等于1)应与具有相同键的字典位置的值相同 我尝试了不同的功能,但都不起作用 希望你能帮助我,因为我对python还很陌生 谢谢Python 是否有一个函数可以用另一本词典过滤我的词典?,python,python-3.x,dictionary,spyder,Python,Python 3.x,Dictionary,Spyder,我正试图在词典位置\u SUPPLY\u打开时筛选词典位置。 如果LOCATION\u SUPPLY\u OPEN的值等于1,则新的\u dict中的键(等于1)应与具有相同键的字典位置的值相同 我尝试了不同的功能,但都不起作用 希望你能帮助我,因为我对python还很陌生 谢谢 您几乎做了所有的事情,除了为new\u dict 看看这个: 听写理解: new_dict = {key: LOCATION[key] for (key, value) in LOCATION_SUPPLY_OPEN.
您几乎做了所有的事情,除了为
new\u dict
看看这个:
听写理解:
new_dict = {key: LOCATION[key] for (key, value) in LOCATION_SUPPLY_OPEN.items() if value}
欢迎进行更多优化;) 太棒了,我被困在那里一个多小时了,“如果值:”这句话到底是什么意思?如果键的值大于0?您在问题中提到,
位置\u SUPPLY\u OPEN
中的值是二进制的,因此1
表示True
,否则0
表示False
。如果您期望的不是二进制
值,您可以更改if
条件。非常感谢您的帮助!
LOCATION_SUPPLY_OPEN = {
'Berlin': (0),
'Cologne': (1),
'Hamburg': (0),
'Stuttgart': (1),
'Munich': (1),
}
LOCATION = {
'Berlin': (13.404954, 52.520008),
'Cologne': (6.953101, 50.935173),
'Hamburg': (9.993682, 53.551086),
'Stuttgart': (9.181332, 48.777128),
'Munich': (11.576124, 48.137154),
}
new_dict = {}
# new_dict = {"Cologne":(6.953101, 50.935173), 'Stuttgart': (9.181332, 48.777128),'Munich': (11.576124, 48.137154) }
for key, value in LOCATION_SUPPLY_OPEN.items():
if value:
new_dict[key] = LOCATION[key]
print(new_dict)
new_dict = {key: LOCATION[key] for (key, value) in LOCATION_SUPPLY_OPEN.items() if value}