python - 列表索引超出范围,从文本文件中输出行
问题描述
我想从文本文件中提取某行,但结果只取第一行,如果我尝试调用其他人,则会显示此错误
Traceback (most recent call last):
File "C:\Users\fomen\PycharmProjects\dddf\main.py", line 22, in <module>
label2 = Label(top, text=list_pip(1), justify=LEFT)
File "C:\Users\fomen\PycharmProjects\dddf\list_pop.py", line 11, in list_pip
return list_1[n]
IndexError: list index out of range
功能:
import os
def list_pip(n):
my_patch = "sort.txt"
if os.path.getsize(my_patch) > 0:
list_1 = []
in_file = open("sort.txt", 'r').readlines()
for line in in_file:
line.index(line)
list_1.append(line)
return list_1[n]
排序.txt:
1.1151530742645264
1.448728322982788
1.5068244934082031
3.5338211059570312
解决方案
尝试将您的退货声明更改为return list_1[n-1]
.
原因:- 列表中的索引从零开始。列表的索引 0 给出第一行,索引 1 给出第二行,依此类推。因此,索引 n-1 给出第 n 行。
此外,return 语句必须在 for loop 之外。
推荐阅读
- smtp - 在 Julia 中使用 SMTPClient.jl 发送电子邮件:curl_easy_perform() failed: SSL peer certificate or SSH remote key was not OK
- c# - 如何使用它的指针直接从托管代码中的非托管读取矢量数据
- javascript - 尽管我正在对其进行变异,但对象返回相同
- scala - 如果日期为月底,则使用石英定义的下一个执行时间失败
- java - 如何反复检查用户是否在 Firebase 身份验证中得到验证?
- ios - 无法快速更改 ui 标签
- performance - 堆栈和堆性能?
- node.js - 如何自动将用户添加到公会?
- ios - 如何在 Swift 5 中将文档转换为自定义对象?
- c# - 无法在 Visual Studio 2019 中加载用户控件设计视图