Python 根据给定的上限数字创建 val 块

问题描述 投票:0回答:1

我正在创建一个给定上限编号的特定值的列表,我可以使用以下命令来完成此操作。我只是想知道是否有更好/更短/更快的方法来做到这一点。

cap = 93
chunkSize = 10
chunks = []
while cap > 0: 
    val = chunkSize if cap / chunkSize >= 1 else cap
    chunks.append(val)
    cap -= val

for i, q in enumerate(chunks):
    print(i, q)

预期的正确输出是 -

0 10
1 10
2 10
3 10
4 10
5 10
6 10
7 10
8 10
9 3

如果有什么奇特的方法可以做到这一点,请回复。

我已经有了一个可行的解决方案。

python list loops optimization
1个回答
0
投票

正如 viggo 所指出的,只需计算您需要多少个完整块即可。区别只是你需要检查最后一个块是否不为零:

whole_chunks, last_chunk = divmod(cap, chunk_size)
chunks = [chunk_size] * whole_chunks
if last_chunk:
    chunks.append(last_chunk)
© www.soinside.com 2019 - 2024. All rights reserved.