我有一个看起来像这样的列表:
my_list=
[
['C150', 'Audi', 'P1', 'CC Germany', 'GE' ],
['C150', 'Audi', 'P1', 'CC Germany', 'MUN' ]
['C150', 'Audi', 'P1', 'CC Spain', 'ES' ]
['C150', 'Audi', 'P1', 'CC Spain', 'MAD' ]
['C150', 'Audi', 'P1', 'CC France', 'FR' ]
]
我还有一个变量和一个字典,看起来像这样:
country_to_cath = 'GE'
my_dict = {'CC Germany': 'Ge', 'CC Spain': 'Es', 'CC France': 'Fr'}
我正在尝试根据 my_list
变量过滤 country_to_catch
,该变量表示 GE
。如果我查看 GE
中 my_dict
代表的位置,我会看到 CC Germany
(需要将其设置为上)。所以我需要用 CC Germany
from my_list
这是我的代码:
country_to_catch = 'GE'
for row in my_list:
if row[3] == my_dict[country_to_catch]:
print(row)
我想要的输出:
'C150', 'Audi', 'P1', 'CC Germany', 'GE'
'C150', 'Audi', 'P1', 'CC Germany', 'MUN'
我目前的输出:
KeyError: 'GE'
答案 0 :(得分:1)
您需要反转您的字典才能使您的代码正常工作。还要考虑大写。
my_list=[
['C150', 'Audi', 'P1', 'CC Germany', 'GE' ],
['C150', 'Audi', 'P1', 'CC Germany', 'MUN' ],
['C150', 'Audi', 'P1', 'CC Spain', 'ES' ],
['C150', 'Audi', 'P1', 'CC Sppain', 'MAD' ],
['C150', 'Audi', 'P1', 'CC France', 'FR' ]
]
my_dict = {'CC Germany': 'Ge', 'CC Spain': 'Es', 'CC France': 'Fr'}
reversed_dictionary = {value : key for (key, value) in my_dict.items()}
country_to_catch = 'Ge'
for row in my_list:
if row[3] == reversed_dictionary[country_to_catch]:
print(row)
#['C150', 'Audi', 'P1', 'CC Germany', 'GE']
#['C150', 'Audi', 'P1', 'CC Germany', 'MUN']