如何使列表的元素列表

Posted

技术标签:

【中文标题】如何使列表的元素列表【英文标题】:How to make list the elements of a list 【发布时间】:2022-01-22 07:51:35 【问题描述】:

我必须列出一个列表的元素。 我有清单: n=[1,2,3,4,5,6] 我想创建:

n=[[1],[2],[3],[4],[5],[6]]
n=[[1,2],[3,4],[5,6]]
n=[[1,2,3],[4,5,6]]

我可以使用 map(list,n) 做第一个,但是其他的呢? 另外,如果我想为每对元素创建一个列表,例如:

n=[[1,2] [2,3] [3,4] [4,5] [5,6]]

我该怎么做?

【问题讨论】:

这篇文章中的 chunkify() 代码似乎就是你所发现的:***.com/q/47900922/5517838 您好,欢迎来到 SO。向社区证明您也在致力于解决您的问题,这一点很重要。做到这一点的最佳方法是包含您目前拥有的基于 text 的源,即使它工作不正常。 【参考方案1】:

您可以通过一些列表理解、迭代和压缩技巧来使用 chunkify 方法:

def chunkify(l, size):
    it = iter(l)
    return [list(e) for e in zip(*[it for _ in range(size)])]

示例:

n=[1,2,3,4,5,6]
for size in range(1, 4):
    print(chunkify(n, size))

输出:

[[1], [2], [3], [4], [5], [6]]
[[1, 2], [3, 4], [5, 6]]
[[1, 2, 3], [4, 5, 6]]

【讨论】:

【参考方案2】:
>>> s = [1,2,3,4,5,6]
>>> s1 = [[each] for each in s]
>>> s1
[[1], [2], [3], [4], [5], [6]]

>>> s2 = [[each,each+1] for each in s[:2:]]
>>> s2

[[1, 2], [2, 3]]
>>> s2 = [[each,each+1] for each in s[::2]]
>>> s2
[[1, 2], [3, 4], [5, 6]]
>>> s2 = [[each, each+1, each+2] for each in s[::3]]
>>> s2

[[1, 2, 3], [4, 5, 6]]
>>> 

【讨论】:

以上是关于如何使列表的元素列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使浮动元素列表跳过居中元素(脊柱对齐/中心标记)?

如何在jquery中使动态添加的列表元素可拖动?

如何使字符串列表的每个元素都可点击?

jquery 点击使元素置顶

列表列表的组合,使每个组合都有唯一的元素

如何克隆反应元素以进行拖动