首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3:列表索引问题

Python 3:列表索引问题
EN

Stack Overflow用户
提问于 2019-02-20 08:24:43
回答 1查看 94关注 0票数 1

到目前为止,我一直在用python2.7编写代码,并尝试使用python3

我正面临着一个问题,那就是添加到一个我不理解的列表中,这让我感到困惑

代码语言:javascript
复制
with open('path/AuthorNames.csv' ,'r') as f:
    reader = csv.reader(f)
    your_list = list(reader) ## this generates [[auther1],[auther2],...]
    l2 = []
    for item in your_list:
        l2.append(item[0])

运行此命令会导致IndexError:列表索引超出范围

为什么?我有一个空列表,我正在将for循环中的项添加到该列表中,我不会更改现有列表。

在python3中有没有新的列表处理方法?

Your_list中的for item示例:打印项目

代码语言:javascript
复制
['\ufeffArticle Author']
['Thomas B. Bennettd1 Barry Friedmandd1 Andrew D. Martinddd1 Susan Navarro Smelcer']
['Thomas B. Bennettd1 Barry Friedmandd1 Andrew D. Martinddd1 Susan Navarro Smelcer']
['Thomas B. Bennettd1 Barry Friedmandd1 Andrew D. Martinddd1 Susan Navarro Smelcer']
['Thomas B. Bennettd1 Barry Friedmandd1 Andrew D. Martinddd1 Susan Navarro Smelcer']
['Thomas B. Bennettd1 Barry Friedmandd1 Andrew D. Martinddd1 Susan Navarro Smelcer']
['Thomas B. Bennettd1 Barry Friedmandd1 Andrew D. Martinddd1 Susan Navarro Smelcer']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 08:35:10

我看到的唯一可能是your_list中有一个空列表。

尝试:

代码语言:javascript
复制
with open('path/AuthorNames.csv' ,'r') as f:
    reader = csv.reader(f)
    your_list = list(reader) ## this generates [[auther1],[auther2],...]
    l2 = []
    for item in your_list:
        if item:
            l2.append(item[0])

或者使用列表理解,

代码语言:javascript
复制
l2 = [item[0] for item in your_list if item]

(在这里使用列表理解是@John Coleman的想法,只是为了这个答案的完整性而在这里添加。)

正如我在评论中所写的,您可能希望检查您的csv文件,看看空行是否正常,或者您的数据是否有问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54776957

复制
相关文章

相似问题

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