我想将列表拆分为嵌套列表。我的清单是:
[1,2,1,3,2]
现在,我希望输出如下:
[[1,2],[2,1],[1,3],[3,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]]
注意:lst
中zip
的第一个实例不必被切片,因为它是两个中最小的一个,它决定了元组的数量生成。
正如@ Jean-FrancoisFabre在评论中所说,如果原始列表是 big ,您可能想要使用生成器而不是 hard 切片。
res = [list(pair) for pair in zip(lst, itertools.islice(lst, 1, None))]
这种方法的好处(或前一种方法的缺点)是zip
(lst[1:]
)中使用的第二个列表不是在内存中创建的,但是你需要{{1它的工作原理。
答案 1 :(得分:2)
您正在寻找bi-grams。这是从序列生成n-gram的通用函数。
var myNode = $('#myNode');
var whereToPlace = $('#place');
whereToPlace.append(myNode);