通过连接另一个列表的元素来创建一个字符串列表[重复]

Posted

技术标签:

【中文标题】通过连接另一个列表的元素来创建一个字符串列表[重复]【英文标题】:Create a list of strings by joining elements of another list [duplicate] 【发布时间】:2012-08-30 21:43:22 【问题描述】:

可能重复:How do you split a list into evenly sized chunks in Python?Merge two lists in python?

数组中的原始数据:

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

期望的输出:

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

我知道使用while 语句效率低下,所以我需要这方面的帮助。

【问题讨论】:

到目前为止您尝试过什么?您是否要合并始终包含三列的组? 您的标题似乎与问题的其余部分不匹配。似乎只有一个阵列,而不是三个。你真的想把字符串列表变成连接三个相邻元素的更长字符串列表,还是真的需要不同的东西? @Blckknght:他的用户名是Natsume - 英语很可能不是他的母语。此外,他的问题在我看来并不模棱两可。 我英语不好抱歉:P 在我看来,最大的效率低下是花费太多时间试图找到做某事的“最佳”方式。时间通常比几个处理器周期更值得很多 【参考方案1】:
[' '.join(a[i:i+3]) for i in range(0, len(a), 3)]

【讨论】:

投反对票?这会产生 OP 请求的 exact 输出。 可能是因为[的虚假领先? (顺便说一句,我不是) 偷偷摸摸.. 来自解释器的错误复制/粘贴。复制/粘贴对您不利的另一个原因!感谢您发现错误。【参考方案2】:

重用!

from itertools import islice

def split_every(n, iterable):
    i = iter(iterable)
    piece = list(islice(i, n))
    while piece:
        yield piece
        piece = list(islice(i, n))

a = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
new_a = [' '.join(slice) for slice in split_every(3, a)]

主要使用this。

【讨论】:

这也会产生准确的输出。 ://

以上是关于通过连接另一个列表的元素来创建一个字符串列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

没有另一个列表元素的 C# 列表(集合论,补码)[重复]

连接列表的元素[重复]

如何通过单击另一个列表视图 WPF 中的元素来刷新列表视图

如何将所有列表元素添加到另一个列表中[重复]

R语言_list()函数用法

在一个列表中查找不在另一个列表中的项目[重复]