Python Nested List Comprehensions 创建矩阵

标签 python list-comprehension

我是列表理解的新手,想将下面的 for 循环代码复制到嵌套列表理解中。

 master = []
 inner = []
 for x in range(1,8):
     inner = []
     for y in range(1,x+1):
         inner.append(str(x*y).rjust(2))

     master.append(inner)

for m in master:
    print ' '.join(m)

输出看起来像这样:

  1
  2  4
  3  6  9
  4  8 12 16
  5 10 15 20 25
  6 12 18 24 30 36
  7 14 21 28 35 42 49

我在想:

 test =  [  
    [str(x*y).rjust(2) for x in range(1,8)] 
    for y in range(1,x+1) 
 ] 
 for t in test:
     print ' '.join(t)

但是我得到一个回溯错误:

 Traceback (most recent call last):
 File "python", line 3, in <module>
 NameError: name 'x' is not defined

任何 Python 专家愿意为我指出正确的方向吗?

提前致谢!

最佳答案

您可以使用以下嵌套列表理解:

answer = [[i*j for i in range(1, j+1)] for j in range(1, 8)]
print(answer)

输出

[[1],
 [2, 4],
 [3, 6, 9],
 [4, 8, 12, 16], 
 [5, 10, 15, 20, 25], 
 [6, 12, 18, 24, 30, 36], 
 [7, 14, 21, 28, 35, 42, 49]]

关于Python Nested List Comprehensions 创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35799491/

相关文章:

python多维列表..如何抓取一维?

python - 如何通过 python 从 mediawiki 标记的文章中解析/提取数据

python - 使用唯一值数组的索引数组

python - 遍历元组列表并仅解压缩第一个元素

haskell - 你可以在haskell中使用列表理解一次创建多个列表元素吗?

python - python 中的 all() 如何处理空列表

python - 我如何跳转到 Scrapy 规则中的下一页

python - GAE 谷歌图书 API

python - 合并多个列表理解

python - 当条件为非 bool 值时,如何在列表理解中使用 "else"?