【发布时间】:2013-03-27 00:52:20
【问题描述】:
在 Python 3 中,我正在尝试创建一个程序,该程序将用户输入作为 3 位代码并将它们转换为列表中的项目。然后它将这些项目与元组列表中元组的第一个(3 位代码)部分进行比较,并打印 whole 元组。
import shares
portfolio_str=input("Please list portfolio: ")
portfolio_str= portfolio_str.replace(' ','')
portfolio_str= portfolio_str.upper()
portfolio_list= portfolio_str.split(',')
print(portfolio_list)
print()
print('{:<6} {:<20} {:>8}'.format('Code', 'Name', 'Price'))
data=shares.EXCHANGE_DATA
for (code, name, share_value) in data:
if code == i in portfolio_list:
print('{:<6} {:<20} {:>8.2f}'.format(code, name, share_value))
else:
print("Failure")
如您所见,我正在使用一个名为 share 的模块,其中包含一个名为 EXCHANGE_DATA 的元组列表,其设置如下:
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, AMP, ANZ
相应的输出是:
Code Name Price
AIA Auckair 1.50
AMP Amp 3.22
ANZ Anzbankgrp 26.25
我只是停留在我认为我需要的 for 和/或 if 语句上。
【问题讨论】:
-
看起来你使用了错误的数据结构 - 你想要一个字典。
-
@Lattyware 我想使用字典,但我被困在使用元组列表中(这是一个使用给定数据等的固定问题)....
-
data_dict = {code: (name, price) for code, name, price in EXCHANGE_DATA}- 很容易用dict comprehension 转换它,然后它会简化其他代码。
标签: python list python-3.x tuples