python - 嵌套列表理解

标签 python python-3.x list-comprehension

我经常遇到一个问题,我试图从字符串中创建一定长度的列表列表。

这是一个例子,我有一个字符串,但想创建一个长度为 3 的列表:

x = '123456789'

target_length = 3

new = [i for i in x]
final = [new[i:i+target_length] for i in range(0, len(x), target_length)]

print(final)

输出:

[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

所以,这可行,但感觉很笨拙。

是否有更好的方法将这些参数合并到一行中,或者您认为这会使代码不可读?

最佳答案

如果你想在一行中完成它,你可以在你的理解中创建列表:

x = '123456789'
target_length = 3

[list(x[i:i+target_length]) for i in range(0, len(x), target_length)]
>> [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

关于python - 嵌套列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46731758/

相关文章:

python - R apply在Python中的匹配速度

python - 根据列条件复制和修改 pandas 中的行

python - 使用递归从嵌套列表中获取绝对值

python - 如何在不忘记在子类中添加属性装饰器的情况下覆盖抽象属性方法?

python-3.x - 在seaborn热图中屏蔽注释

python-3.x - 为什么浅拷贝表现为简单列表的深拷贝

python - 如何使用列表理解创建斐波那契数列?

python - 在 Python 中逐项列出大型 xml 文件

python - 指定的列表理解

python - 替换Python列表中的特殊字符