【问题标题】:Python List comprehension run for loop N amount of times [duplicate]Python列表理解运行循环N次[重复]
【发布时间】:2019-02-19 23:48:23
【问题描述】:

我正在学习理解,但我不知道如何将 for 循环运行 N 次。在这种情况下,我想导入 .csv 文件的前 5 行。但我想了解进一步解决方案的逻辑。

    def columnMatch(self):
    with open(self.file_path) as csvfile:
        readcsv = csv.reader(csvfile, delimiter=';')
        line_count = 0
        row_list = []
        for row in readcsv:
            if line_count < 5:
                row_list.append(row)
                line_count += 1
    return row_list

【问题讨论】:

  • 由于您的代码目前是这样,一旦超出条件,您希望 break 循环。
  • 另外,您的代码中没有列表理解
  • from itertools import islicefor row in islice(readcsv, 5): 将循环限制为 5 次迭代。
  • 谢谢@MartijnPieters。感谢您的评论,我明白了:row_list = [row for row in islice(readcsv,5)] 可以解决问题。
  • @Roy:row_list = list(islice(readcsv, 5)) 也是如此;当所有列表理解所做的只是回显循环目标时,无需使用列表理解。 :-)(row 是循环中的循环目标)。

标签: python


【解决方案1】:

您可以使用enumerate 函数来更轻松地完成此操作,例如:-

...
readcsv = csv.reader(csvfile, delimiter=';')
row_list = []
for i, row in enumerate(readcsv):
    if i < 5:
        row_list.append(row)
    else:
        break
...

【讨论】:

  • 这将遍历文件的其余部分,而无需这样做。
猜你喜欢
  • 2022-01-25
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
  • 2013-09-10
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多