假设我有一个元组,如下所示:
MY_CHOICES = (
('AB', 'APPLE BANANNA'),
('O', 'ORANGE'),
('W', 'WATERMELLON'),
('SB', 'STRAWBERRY BANANNA'),
('CM', 'CHERRY MELLON'),
)
我如何使用它作为查找并循环遍历列表,如下所示:
fruit_list = ['AB','SB','CM']
要做到这一点:
['APPLE BANANNA','STRAWBERRY BANANNA','CHERRY MELLON']
这就是我正在尝试的:
fruit_list_final = []
for fruit in fruit_list:
fruit_list_final.append( MY_CHOICES[fruit] )
print fruit_list_final
但是我收到一个错误:unicode TypeError:元组索引必须是整数,而不是
发布于 2018-07-04 03:56:32
将其转换为字典。
示例:
MY_CHOICES_DICT = dict(MY_CHOICES)
result = [MY_CHOICES_DICT[fruit] for fruit in fruit_list]
print(result)
结果是:
['APPLE BANANNA', 'STRAWBERRY BANANNA', 'CHERRY MELLON']
发布于 2018-07-04 04:04:43
还有另一种方式:
result = [
next(name for code, name in MY_CHOICES if code == item)
for item in fruit_list
]
这不会构建中间字典,而是迭代每个结果的数组。如果列表很小,可能会产生更好的性能。如果列表很长,情况肯定会更糟。
请注意,缺少水果将导致引发StopIteration
异常。
发布于 2018-07-04 04:04:35
您可以使用
MY_CHOICES = (
('AB', 'APPLE BANANA'),
('O', 'ORANGE'),
('W', 'WATERMELON'),
('SB', 'STRAWBERRY BANANA'),
('CM', 'CHERRY MELON'),
)
print(next(value for key, value in MY_CHOICES
if key == 'W'))
将打印:
WATERMELON
https://stackoverflow.com/questions/51162027
复制相似问题