不理解Python列表理解

问题描述 投票:0回答:1
t = [[3-i for i in range(3)]for j in range(3)]
s = 0
for i in range(3):
   s += t[i][i]
print(s)

最终结果应该是6。请有人向我解释一下整个过程以及为什么会发生这一切,因为我自己无法得到它。 谢谢大家,并期待获得如此有用的信息。

据我所知,应该是这样的:

  1. 交互作用 i = 3-0 = 0 且 j = 0
  2. 交互作用 i = 3-1 = 2 且 j = 1
  3. 交互作用 i = 3-2 = 1 且 j = 2

但是第二部分我完全无法理解并且不知道该怎么办

python python-3.x list list-comprehension
1个回答
0
投票
  1. 您正在创建

    t
    ,一个包含 3 个相同的
    [3,2,1]

    列表的列表
    # inline display
    [[3, 2, 1], [3, 2, 1], [3, 2, 1]]
    
    # two dimension display
    [[3, 2, 1], 
     [3, 2, 1], 
     [3, 2, 1]]
    
  2. 然后将位置

    0,0
    1,1
    2,2

    的值相加

这意味着下面这段代码中带括号的值

[[ (3),  2 ,  1  ], 
 [  3 , (2),  1  ], 
 [  3 ,  2 , (1) ]]

还有

3 + 2 + 1 == 6

© www.soinside.com 2019 - 2024. All rights reserved.