如何在python中将for循环转换为列表理解

我有一个嵌套的 for 循环,我想将它转换为 python 中的列表理解。我怎样才能做到这一点


all_combinations = []

for i in range(0,size):

    for j in range(i,size):

        if i!=j:

            all_combinations.append((i,j))


摇曳的蔷薇
浏览 270回答 3
3回答

森栏

所有其他答案都回答了您的问题,但我想建议一个更好的选择itertools.combinations:from itertools import combinationsprint(list(combinations(range(3), 2)))# [(0, 1), (0, 2), (1, 2)]为什么更好?没有重复。我们range(3)只指定一次。它经过测试,标准库代码。更短,更易读。(如果使用 CPython,你可能是)它是用 C 实现的,这意味着它(通常)比嵌套的 Python 循环更快。

米琪卡哇伊

all_combinations = [(i,j)  for i in range(size) for j in range(i,size) if i!=j]

牛魔王的故事

为什么不只是all_combinations = [(i,j)  for i in range(size) for j in range(i+1,size) ]不需要 if 测试,因为这永远不会包括 (i,i)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python