首页 > 解决方案 > 将字符串分割为 n 个字符的 for 循环

问题描述

我发现这段代码完全符合我的要求,它将一个字符串拆分为 n 个字符。但是有人可以向我解释这段代码在长格式 for 循环中的样子吗?

n = 3
chunks = [str[i:i+n] for i in range(0, len(str), n)]
print(chunks)

我很难以当前格式理解这段代码的逻辑。如果我要重新编写它,它看起来会类似于下面的代码行,但无法复制结果。

for i in range(0, len(str), n):
    chunks = ''
    string = str[i*n::n]
    chunks = chunks+string

代码来源

标签: pythonfor-loopslice

解决方案


一个看起来像的列表理解

result = [value for element in iterable]

完全等同于以下代码:

result = []
for element in iterable:
    result.append(value)

因此,您的代码将很简单

chunks = []
for i in range(0, len(str), n):
    chunks.append(str[i:i+n])

推荐阅读