Input 元组列表中某些元素的输入点
我有一个元组列表,如下所示:Input 元组列表中某些元素的输入点,input,python-3.x,tuples,Input,Python 3.x,Tuples,我有一个元组列表,如下所示: EXCHANGE_DATA = [('AIA', 'Auckair', 1.50), ('AIR', 'Airnz', 5.60), ('AMP', 'Amp',3.22), ('ANZ', 'Anzbankgrp', 26.25), ('ARG', 'Argosy', 12.22), ('CEN
EXCHANGE_DATA = [('AIA', 'Auckair', 1.50),
('AIR', 'Airnz', 5.60),
('AMP', 'Amp',3.22),
('ANZ', 'Anzbankgrp', 26.25),
('ARG', 'Argosy', 12.22),
('CEN', 'Contact', 11.22),
('CNU', 'Chorus',3.01),
('DIL', 'Diligent', 5.3),
('DNZ', 'Dnz Property', 2.33),
('EBO', 'Ebos', 1.1)]
我想做的是让用户在这些元组中输入一系列代码(每个元组中的第一个元素),用逗号分隔(比如AIA、AIR、AMP),让程序返回输入所引用的整个元组。例如,如果输入为AIA、AIR、AMP,程序将返回:
('AIA', 'Auckair', 1.50)
('AIR', 'Airnz', 5.60)
('AMP', 'Amp',3.22)
我对编程比较陌生,因此如果有任何帮助,我将不胜感激。您应该创建一个帮助词典。这是避免嵌套循环的好方法
>>> EXCHANGE_DATA = [('AIA', 'Auckair', 1.50),
... ('AIR', 'Airnz', 5.60),
... ('AMP', 'Amp',3.22),
... ('ANZ', 'Anzbankgrp', 26.25),
... ('ARG', 'Argosy', 12.22),
... ('CEN', 'Contact', 11.22),
... ('CNU', 'Chorus',3.01),
... ('DIL', 'Diligent', 5.3),
... ('DNZ', 'Dnz Property', 2.33),
... ('EBO', 'Ebos', 1.1)]
>>> inp = "AIA,AIR,AMP" # could come from input()
>>> exchange_dict = {i[0]:i for i in EXCHANGE_DATA}
>>> [exchange_dict[x] for x in inp.split(',')]
[('AIA', 'Auckair', 1.5), ('AIR', 'Airnz', 5.6), ('AMP', 'Amp', 3.22)]
如果输入可以包含额外的空格,您可以这样剥离它们
>>> [exchange_dict[x.strip()] for x in inp.split(',')]
[('AIA', 'Auckair', 1.5), ('AIR', 'Airnz', 5.6), ('AMP', 'Amp', 3.22)]