首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中从二维列表中提取数据

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

Stack Overflow用户
提问于 2017-10-24 20:18:30
回答 1查看 64关注 0票数 0

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

代码语言:javascript
复制
books = []
file_in = open(filename, 'r')

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

file_in.close()   
return books        

这只是一个函数中的代码。当我使用函数将列表赋值给book_data,然后打印book_data时,我得到的结果是:

[ '23337',‘1876’,‘戈尔·维达尔’,‘兰登书屋’,'4/11/1976',‘小说\n’,‘23337’,‘斯蒂芬·金’,‘斯克里布纳’,'11/27/2011',‘小说\n’,‘俱乐部的...and女士’,‘海伦·霍芬·桑特迈尔’,‘普特南’,'7/8/1984',‘小说\n’,‘第一死’,‘詹姆斯·帕特森’,‘小,布朗’,'3/25/2001',‘虚构\n’]

但是当我尝试这样做的时候:

代码语言:javascript
复制
for book in books:
       print(book)

我在第一本书中得到的回报是:“1876”、“戈尔·维达尔”、“兰登书屋”、“4/11/1976”、“小说\n”。

我需要能够浏览每一本书,并比较这些书中的项目,但我似乎甚至无法使用循环打印整个列表。我实际上需要能够通过作者的名字来搜索它。

EN

回答 1

Stack Overflow用户

发布于 2017-10-24 20:53:11

这并没有什么问题

代码语言:javascript
复制
l = [element_1, element_2, ..., element_n]
for element in l:
    print(element)

语法,正如预期的那样,它将一个接一个地打印所有元素,如果每个元素都是一个列表,那么它将逐个打印每个列表。

如果你这样做了

代码语言:javascript
复制
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循环,它将逐个打印代表一本书的每个列表。也许这是图书或book_data中实际内容的问题,一旦您到达那里(无论您试图从哪个打印)

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

代码语言:javascript
复制
if some_book['author'] == "Dude McAuthorson":
    do_something()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46910416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档