(Python) 根据用户输入从列表中打印特定项目时出错?

问题描述 投票:0回答:1

我有一个年份列表(范围从 2023 年到 1956 年),以及另一个与每年对应的数字列表(2023 -> 1、2022 -> 5 等)。我想要做的是要求用户输入某一年份,然后打印与该年份对应的数字。 我使用了该线程中的一段代码,稍微调整以适应我拥有的列表和数据; 文字

inputyear = input("Data?")
for i in range (len(host)):
    if host[i][0] == inputyear: 
     print(inputyear, str(host[i]))

(“主机”是数字列表,顺便说一句)

但是,当我运行此命令时,我收到一条错误消息,指出“'int'对象不可调用”,尽管

inputyear
input
都不是(据我所知)整数,并且代码似乎为上述问题线索中的人工作。

我在这里做错了什么,该如何解决?

提前感谢您的帮助。

python list printing element user-input
1个回答
0
投票

参考所指出的问题链接并对“主机”列表的结构做出假设(也称为使用一些艺术许可),以下是代码的重构版本,其中包含子集列表,该子集列表似乎提供了所需的输出。

host = [('2023', '1'), ('2022', '5')]   # Assumed structure of list

inputyear = input("Data? ")

for i in range (len(host)):
    if host[i][0] == inputyear: 
     print(inputyear, str(host[i][1]))  # Added second element

关键元素是列表的结构(“年份/数字”对)以及在“str”调用中选择第二个数据元素的添加。

以下是引用年份“2022”的快速测试的终端输出。

craig@Vera:~/Python_Programs/Year$ python3 Search.py 
Data? 2022
2022 5

看看这是否满足您的要求。

© www.soinside.com 2019 - 2024. All rights reserved.