列表的相邻元素中的所有排列

问题描述 投票:-1回答:1

我这样做:

from itertools import chain, combinations, permutations
import itertools

i = [5, 6, 7]

x = list(combinations(i, 2))

x.append((x[1][0],))

x = list(itertools.chain.from_iterable(x))

获取所有可能的排列,但在拼合的列表中,其中每对相邻元素对应于一个排列。

这给:

[5, 6, 5, 7, 6, 7, 5]

而不是带有排列的元组的经典列表:

[(5, 6), (5, 7), (6, 5), (6, 7), (7, 5), (7, 6)]

有没有比我的代码更简洁和/或更快速的方法或功能?

python permutation flatten
1个回答
0
投票

您正在调用组合函数,而不是排列。试试这个

from itertools import chain, combinations, permutations
import itertools

i = [5, 6, 7]

x = list(permutations(i, 2))
print(x)
© www.soinside.com 2019 - 2024. All rights reserved.