首页 > 解决方案 > 多行数据,想获取索引还是想办法按顺序获取

问题描述

  1. 读取并存储该文件中的数据。
  2. 用户获取对应于开始和结束年份的两个整数,并按此顺序查找并列出该期间出版的所有书籍的出版年份、标题、作者。
  3. 它重复上一步,直到用户在提示输入开始年份时输入 -1。

这是我到目前为止所拥有的(见图)

def main(): 
    file = open("resources.txt","r") 
    myList = [] 
    year1 = int(input("Enter the first year:")) 
    year2 = int(input("Enter the second year: ")) 
    for x in range(year1, year2): 
        print(yearofpublication,title, author)
    

文件是 1000 行

我主要需要#2的帮助。谢谢

在此处输入图像描述

标签: pythonlist

解决方案


这是一个不使用 Pandas 的解决方案。我已根据您要求的步骤添加注释以分解代码。第 1 步导入文本文件,去掉所有制表符和换行符,并在分号上分割每一行以创建列表列表。步骤 2 遍历所有书籍并将每本书的索引 3(年份)与指定年份进行比较。第 3 步创建了一个无限循环,并且仅在用户输入 -1 时才将其中断。

#step 1
data = open('resources.txt', 'r')
book_list = []
for line in data:
    new_line = line.rstrip('\n').replace('\t', '').split(';')
    book_list.append(new_line)
#step 3
while True:
    year1 = int(input("Enter the first year:"))
    if year1 == -1:
        break
    year2 = int(input("Enter the second year: "))
    #step2
    for book in book_list:
        if year1 <= int(book[3]) <= year2:
            print(f'Publication Year: {book[3]}, Title: {book[1]}, Author: {book[2]}')

推荐阅读