如何将 Python 循环输出放入列表中

新手上路,请多包涵

作为 Python(SAGE) 的初学者,我想将这个 for 循环的输出放入一个列表中:

 for y in [0,8] :
   for z in [0,1,2,3] :
     x=y+z

     print x

输出是

0
1
2
3
8
9
10
11

(垂直)。我想要一个列表,以便我可以将它用于以后的操作:我想要 [1,2,3,8,9,10,11]。我发现了一个类似的问题,我意识到每次都会重新计算输出。有没有一种简单的方法可以将它们存储在列表中?根据对其他答案的建议,我尝试像这样“追加”,但它给出了一条错误消息:

 x=[]
for y in [0,2*3] :
 for z in [0,1,2,3] :
   x=y+z
   x.append(x)

  print x

原文由 Albert 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 511
1 个回答

你有很多办法!首先,作为原始代码,您可以这样做:

 lst=[]
for y in [0,8] :
    for z in [0,1,2,3] :
        x=y+z
        lst.append(x)

print lst

您可以尝试 list comprehension

 lst = [y+z for y in [0,8] for z in [0,1,2,3]]
print lst

您还可以使用 itertool chain

 import itertools
lst = list(itertools.chain(*[range(i, i+4) for i in [0,8]]))
print lst

另一种方式是 itertool products

 import itertools
lst = [y+z for y,z in list(itertools.product([0,8], [0,1,2,3]))]
print lst

在所有情况下, output 是: [0, 1, 2, 3, 8, 9, 10, 11]

原文由 jbsu32 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏