清泓隐月 发表于 2021-7-27 18:54:36

新手,想了好久都不会

matrix = [,
              ,
              ]


如何用列表输出3,5,7这一条对角线

suchocolate 发表于 2021-7-27 19:06:53

result = sorted( for n, v in enumerate(matrix[::-1])])
print(result)

逃兵 发表于 2021-7-27 19:15:49

matrix = [,
          ,
          ]


result = for i in range(3)]
print(result)

阿奇_o 发表于 2021-7-27 20:14:45

其实,对于新手,最好不要"想太久",{:10_250:}
—— 10~30分钟还没思路的或连连受挫,赶紧找答案,找人问。。
—— 或先停下了,是不是脑子不清楚,身体状态不佳,如实在太累了,还想"死磕"?。。

思路:从 特例 → 一般(观察规律)→ 验证
>>> matrix = [,
            ,
            ]
>>> matrix
[, , ]
>>> [-1], matrix[-2], matrix[-3]]   # 特例("硬代码")

# 特殊:第一层的index 从0开始往右走(0, 1, 2),第二层的 从右往左 走(-1, -2, -3)。。
# 一般(规律):它两 加起来,始终等于 -1 啊

# 验证:
>>> for i in range(len(matrix)):
        print(matrix[-1-i], end=' ')

3 5 7

# 对了!

# 转为列表,这里直接用列表推导式了。若不会,可用常规的循环和list.append()
>>> [-1-i] for i in range(len(matrix))]

>>>




suchocolate 发表于 2021-7-28 10:46:40

逃兵 发表于 2021-7-27 19:15


这个好
页: [1]
查看完整版本: 新手,想了好久都不会