在python中将矩阵的上三角形部分显示为列表的有效方法

Shi*_*ngh 0 python performance time-complexity

考虑以下结构 -

68 69 70 71 72 *
73 74 75 76 * 77
78 79 80 * 81 82
83 84 * 85 86 87 
88 * 89 90 91 92
* 93 94 95 96 97
Run Code Online (Sandbox Code Playgroud)

我必须生成一个上半部分列表即

[68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 83, 84, 88]
Run Code Online (Sandbox Code Playgroud)

该结构仅用于解释,只给出了两个值,即开始和长度,如上例start=68length = 5.

这是我生成列表的代码 -

start = 68
length = 5

ls = []
for i in range(length):
    for j in range(length-i):
        ls.append(start)
        start = start+1
    start = start+i

print(ls)
Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法来实现同样的目标?

Dan*_*iel 5

查看内部循环,您只需附加连续的数字.替换为一个extend:

length = 5
start = 68

ls = []
for cnt in range(length):
    ls.extend(range(start+length*cnt, start+length*(cnt+1)-cnt))
Run Code Online (Sandbox Code Playgroud)