社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python从每个内部列表中获取第二项

Johan14th • 5 年前 • 1763 次点击  

我有一个包含内部列表(从逗号分隔的文件读取)的列表,我想获取其中的第二项。例如 x = [[2,3,4][5,6,7]] 我想要3和6。简单的事情,我以为我知道怎么做。我知道我可以试着用下面的方法得到第二个数字:

fp = open('random.txt') 
x = list(fp.read().split("\n"))
x.pop(0) #header line
x = [item.split(",") for item in x]

print([item[1] for item in x])

我的问题是,我可以通过做 item[0] 在上面的代码中,这很好。但是,如果我尝试 item[1] 我得到一个列表索引超出范围错误。我试着在正常的for循环中测试我的列表是否正确。

for item in x:
    print(item[1])

结果很好,现在我知道如果我真的想使用第二个版本的话,我也可以使用它,但是我想知道为什么第一个版本在第二个版本中运行良好时会出现这个错误?


编辑:包括我的其余代码

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47844
 
1763 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Reedinationer
Reply   •   1 楼
Reedinationer    6 年前

我想这个问题一定和你的其他代码有关。我刚刚运行了以下命令:

x = [[2, 3, 4], [5, 6, 7]]
print([item[1] for item in x])

[3,6]

for item in x:
    print(item)

[2,3,4]

[5,6,7]

for item in x:
    print(item[1])

6个

你发布的所有代码运行良好,没有错误。你一定是在改变你的名单,不知怎么的,那是没有公布的。我建议你试试 print(x) 在处理它以确定实际结构的外观之前,然后从那里相应地处理它。