2013-03-19 85 views
0

我有一個元組列表如下:輸入指向元組的列表中的某些元素

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) 

我對編程相對比較陌生,所以不勝感激。

回答

0

您應該創建一個幫手字典。這是避免嵌套循環的好方法。

>>> 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)] 
+0

感謝您的幫助! – user2101517 2013-03-20 02:14:47

相關問題