我有一个年份列表(范围从 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
都不是(据我所知)整数,并且代码似乎为上述问题线索中的人工作。
我在这里做错了什么,该如何解决?
提前感谢您的帮助。
参考所指出的问题链接并对“主机”列表的结构做出假设(也称为使用一些艺术许可),以下是代码的重构版本,其中包含子集列表,该子集列表似乎提供了所需的输出。
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
看看这是否满足您的要求。