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=68和length = 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)
有没有更有效的方法来实现同样的目标?
查看内部循环,您只需附加连续的数字.替换为一个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)
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |