如何在Python 3中将列表拆分为嵌套列表?

时间:2018-04-04 08:39:08

标签: python python-3.x

我想将列表拆分为嵌套列表。我的清单是:

[1,2,1,3,2]

现在,我希望输出如下:

[[1,2],[2,1],[1,3],[3,2]]

是否有可能按上述方式进行输出?

2 个答案:

答案 0 :(得分:6)

您可以使用zip

lst = [1,2,1,3,2]

res = [list(pair) for pair in zip(lst, lst[1:])]
print(res)  # -> [[1, 2], [2, 1], [1, 3], [3, 2]]

注意lstzip的第一个实例不必被切片,因为它是两个中最小的一个,它决定了元组的数量生成。

正如@ Jean-FrancoisFabre在评论中所说,如果原始列表是 big ,您可能想要使用生成器而不是 hard 切片。

res = [list(pair) for pair in zip(lst, itertools.islice(lst, 1, None))]

这种方法的好处(或前一种方法的缺点)是ziplst[1:])中使用的第二个列表不是在内存中创建的,但是你需要{{1它的工作原理。

答案 1 :(得分:2)

您正在寻找bi-grams。这是从序列生成n-gram的通用函数。

var myNode = $('#myNode');
var whereToPlace = $('#place');
whereToPlace.append(myNode);