在python中从二维列表中提取数据

2024-10-02 00:22:47 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我正在尝试从二维列表中提取信息。我使用以下代码读取中的数据:

books = []
file_in = open(filename, 'r')

for line in file_in:
    thisline = line.split('\t')
    books.append(thisline)

file_in.close()   
return books        

这只是函数中的代码。当我使用函数将列表分配给图书\数据,然后打印图书\数据时,我得到以下结果:

[['1876'、'Gore Vidal'、'Random House'、'4/11/1976'、'Frient\n']、['23337'、'Stephen King'、'Scribner'、'11/27/2011'、'Frient\n']、['…and Ladies of the Club'、'Helen Hooven Santmeyer'、'Putnam'、'7/8/1984'、'Frient\n']、['1st to Die'、'James Patterson'、'Little,Brown'、'3/25/2001'、'Fr

但是当我试着做一些像:

for book in books:
       print(book)

我在第一本书中得到的回报是:['1876','Gore Vidal','Random House','4/11/1976','Fiction\n']

我需要能够通过每一本书和比较项目在那些书,但我甚至不能得到整个名单打印使用循环。我实际上需要能够通过作者的名字来搜索它。你知道吗


Tags: 数据函数代码in列表forlinerandom
1条回答
网友
1楼 · 发布于 2024-10-02 00:22:47

这辆车没问题

l = [element_1, element_2, ..., element_n]
for element in l:
    print(element)

语法,正如预期的那样,它将逐个打印所有元素,如果每个元素都是一个列表,那么它将逐个打印这些列表中的每个元素。你知道吗

如果你这样做了

books = [['1876', 'Gore Vidal', 'Random House', '4/11/1976', 'Fiction\n'], ['23337', 'Stephen King', 'Scribner', '11/27/2011', 'Fiction\n'], ['...and Ladies of the Club', 'Helen Hooven Santmeyer', 'Putnam', '7/8/1984', 'Fiction\n'], ['1st to Die', 'James Patterson', 'Little, Brown', '3/25/2001', 'Fiction\n']]

然后运行for循环,它将逐个打印代表一本书的每个列表。可能是因为一旦你到了那里(无论你想从哪一个打印出来),书或书中的数据就有问题了

另外,考虑使用字典来表示每一本书,这样你就可以更明确和结构化地描述它的属性(而不是仅仅依赖于记住哪个索引号对应于哪个书的属性)并执行如下操作

if some_book['author'] == "Dude McAuthorson":
    do_something()

相关问题 更多 >

    热门问题