【问题标题】:append function not working in for loop Python 3附加函数在for循环Python 3中不起作用
【发布时间】:2018-08-01 15:19:53
【问题描述】:

我有一个 for 循环正在运行,它从包含多个 Unix 时间的另一个列表的元素创建一个新的选择 Unix 时间列表,这些元素的索引又由另一个列表给出。我的问题是在这个 for 循环中 append 函数不起作用,我不知道为什么,因为我没有收到错误。在 for 循环之后简单地忽略 print 函数。我不确定我做错了什么。有人可以帮帮我吗?

这是我的代码:

adjusted_exc_pass_numbers = [0, 6, 9, 16, 19, 22, 25, 32, 35, 41, 48]
processed_start_times = [1519275660, 1519287600, 1519325040, 1519336920, 1519360080, 1519365900, 1519371900, 1519409400, 1519415340, 1519421280, 1519450260, 1519456200, 1519499700, 1519534680, 1519540560, 1519546620, 1519584060, 1519596000, 1519619160, 1519624920, 1519630920, 1519668420, 1519674360, 1519680360, 1519709340, 1519715220, 1519758720, 1519793760, 1519799580, 1519805700, 1519843080, 1519855020, 1519878180, 1519884000, 1519890000, 1519927500, 1519939380, 1519968360, 1519974300, 1520017800, 1520052780, 1520058660, 1520064720, 1520102160]
ppst = []
for element in range(len(adjusted_exc_pass_numbers)):
    ppst.append(processed_start_times[int(adjusted_exc_pass_numbers[element])])
print(ppst)

当我运行它时,打印被忽略,其余的代码就像语句不存在一样执行。我不明白为什么它没有附加或打印。

感谢您的宝贵时间。

【问题讨论】:

  • 此脚本失败并出现错误。如果你看不到错误,你应该以不同的方式运行它(例如从命令行)
  • 为什么不只是ppst = [adjusted_exc_pass_numbers[index] for index in processed_start_times]?遍历range(len(thing)) 在 Python 中通常是单调的。
  • 你得到一个错误,因为adjusted_exc_pass_numbers 的最后一个元素是 48 而processed_start_times 只有 44 个元素。因此,在循环中 Python 无法获取 processed_start_times 和 IndexErrors 的第 48 个元素。
  • 另外你不应该使用循环,正如jonrsharpe 提到的那样。也可以试试:list(map(processed_start_times.__getitem__, adjusted_exc_pass_numbers))
  • 避免使用for element in range(len(x)):,直接使用for element in x:

标签: python python-3.x list for-loop append


【解决方案1】:

当我运行这段代码时,我在该行得到一个 IndexError

ppst.append(processed_start_times[int(adjusted_exc_pass_numbers[element])])

这样做的原因是因为当您进行迭代时,元素将是 0,1,2,3...,adjusted_exc_pass_numbers[element] 将是 0,6,9,16,...,最终您将是试图从processed_start_times 获取索引 48,该列表只有 44 个条目。不知道为什么你在没有任何错误的情况下完成循环,但据我所知,这是问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多