列表中的索引超出范围
Index Out of Range in a List
我有以下 python 代码,它应该能够读取包含城市及其坐标的 .csv 文件。 .csv 文件的格式为:
name,x,y
name,x,y
name,x,y
但是,我在第 764 行收到错误“列表索引超出范围”:
758 """function to calculate the route for files in data folder with coordinates"""
759 start_time = time.time()
760 f = open(csv_name, "r")
761 f.readline()
762 f.readline()
763 f.readline()
764 lines = int(f.readline().split()[2])
765 f.readline()
766 f.readline()
该文件大约有 50 行。可能导致问题的原因是什么?谢谢!
如果程序正在读取的特定行不包含任何空格,则调用
f.readline().split()
将return
['name,x,y']
所以唯一可用的索引是 0
。
我相信您想做的是用逗号分隔每个字符串,如果是这样的话:
f.readline().split(',')
会做到这一点。
代码,f.readline()
returns 一个字符串并将其拆分 returns 从 readline() 函数获得的唯一字符串的列表。
示例:
f=open('property.csv', "r")
f.readline()
lines = f.readline().split()
print(lines)
输出:['10001000,104,PUTNAM,Y,3,2,100']
此外,f.readline().split()[0]
会给出 10001000,104,PUTNAM,Y,3,2,100 作为字符串。
因此,f.readline().split()
将只有 1 个字符串类型的元素。要将字符串分隔到 csv 文件的列中,请使用 逗号 作为分隔符拆分字符串。在您的情况下,将第 764 行替换为以下内容:
lines=int(f.readline().split(',')[2])
请注意:这是索引超出范围错误,因为代码试图访问只有一个元素作为字符串的列表的第二个元素。
我有以下 python 代码,它应该能够读取包含城市及其坐标的 .csv 文件。 .csv 文件的格式为:
name,x,y
name,x,y
name,x,y
但是,我在第 764 行收到错误“列表索引超出范围”:
758 """function to calculate the route for files in data folder with coordinates"""
759 start_time = time.time()
760 f = open(csv_name, "r")
761 f.readline()
762 f.readline()
763 f.readline()
764 lines = int(f.readline().split()[2])
765 f.readline()
766 f.readline()
该文件大约有 50 行。可能导致问题的原因是什么?谢谢!
如果程序正在读取的特定行不包含任何空格,则调用
f.readline().split()
将return
['name,x,y']
所以唯一可用的索引是 0
。
我相信您想做的是用逗号分隔每个字符串,如果是这样的话:
f.readline().split(',')
会做到这一点。
代码,f.readline()
returns 一个字符串并将其拆分 returns 从 readline() 函数获得的唯一字符串的列表。
示例:
f=open('property.csv', "r")
f.readline()
lines = f.readline().split()
print(lines)
输出:['10001000,104,PUTNAM,Y,3,2,100']
此外,f.readline().split()[0]
会给出 10001000,104,PUTNAM,Y,3,2,100 作为字符串。
因此,f.readline().split()
将只有 1 个字符串类型的元素。要将字符串分隔到 csv 文件的列中,请使用 逗号 作为分隔符拆分字符串。在您的情况下,将第 764 行替换为以下内容:
lines=int(f.readline().split(',')[2])
请注意:这是索引超出范围错误,因为代码试图访问只有一个元素作为字符串的列表的第二个元素。