gpt4 book ai didi

python - 是否有一种 pythonic 方式来排列列表列表?

转载 作者:行者123 更新时间:2023-11-28 22:33:36 25 4
gpt4 key购买 nike

我有一个包含唯一字符串的列表列表,我想生成任意数量的不同排序方式。该列表可能如下所示:

list = [[a], [b,c], [d], [e,f,g]]

列表的顺序必须相同,但我想打乱列表中的顺序,然后将它们放在一个列表中,例如

list1 = [a,b,c,d,e,f,g]
list2 = [a,c,b,d,f,e,g]
...
...
listN = [a,c,b,d,f,g,e]

实现此目标的良好 pythonic 方法是什么?我在 python 2.7 上。

最佳答案

from itertools import permutations, product

L = [['a'], ['b','c'], ['d'], ['e', 'f', 'g']]

for l in product(*map(lambda l: permutations(l), L)):
print([item for s in l for item in s])

产生:

['a', 'b', 'c', 'd', 'e', 'f', 'g']
['a', 'b', 'c', 'd', 'e', 'g', 'f']
['a', 'b', 'c', 'd', 'f', 'e', 'g']
['a', 'b', 'c', 'd', 'f', 'g', 'e']
['a', 'b', 'c', 'd', 'g', 'e', 'f']
['a', 'b', 'c', 'd', 'g', 'f', 'e']
['a', 'c', 'b', 'd', 'e', 'f', 'g']
['a', 'c', 'b', 'd', 'e', 'g', 'f']
['a', 'c', 'b', 'd', 'f', 'e', 'g']
['a', 'c', 'b', 'd', 'f', 'g', 'e']
['a', 'c', 'b', 'd', 'g', 'e', 'f']
['a', 'c', 'b', 'd', 'g', 'f', 'e']

关于python - 是否有一种 pythonic 方式来排列列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39745571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com