【问题标题】:for loop list index out of rangefor 循环列表索引超出范围
【发布时间】:2021-12-29 16:43:05
【问题描述】:

我正在读取一个文件,文件中的所有数据都被读取并放入名为“数据”的列表中,如下所示。 [‘43629’, ‘7’, ‘4’, ‘运行时错误’, ‘0’, ‘879’, ‘12:20:52’], [‘43628’、‘31’、‘3’、‘运行时错误’、‘0’、‘521’、‘12:20:38’]...

我想将时间类型从 str 更改为类 Time,但在 for 循环中系统显示列表索引超出范围。 ['12','20','52']的长度是3,为什么time[0], time[1], time[2]不可用?

class Time:
    def __init__(self, hour, minute, second):
        self.hour = hour
        self.minute = minute
        self.second = second

data = []
for line in file.readlines():
    line = line.strip('\n')
    line = line.split(',')
    data.append(line)


for i in (1, len(data)+1):
    time = data[i][6].split(':')
    data[i][6] = Time(time[0], time[1], time[2])

【问题讨论】:

    标签: list for-loop


    【解决方案1】:

    我认为你错过了两点。 一个是缺少range,另一个是i必须在0 ~ len(data) - 1中。

    (1, len(data) + 1) 只是一个元组。

    for i in range(len(data)):
        time = data[i][6].split(':')
        data[i][6] = Time(time[0], time[1], time[2])
    

    【讨论】:

      猜你喜欢
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 2016-10-03
      • 2019-05-21
      相关资源
      最近更新 更多