Python - 将列表转换为列表列表,每个条目包含唯一组合

标签 python list

我有一个列表列表如下:

mylist=[[a,b],[a,c],[b,c],[c,d],[d,e],[e,c]]

我想做的是遍历 mylist 并生成一个新列表,如下所示:

result=[ [ [a,b],[c,d] ] , [ [a,c],[d,e] ] , [ [b,c] ], [ [e,c] ] ]

换句话说,制作一个列表列表,其中每个列表包含初始列表条目的唯一组合,这样一个字母就不会在结果列表的每个条目中出现两次。此外,每次将条目添加到结果时,我们都会从初始列表的可用组合集中抽象出它的子元素。 (我想给出的例子比解释更清楚)。

最佳答案

这应该适合你:

mylist=[['a','b'],['a','c'],['b','c'],['c','d'],['d','e'],['e','c']]
final_res=[]
while(len(mylist)>0):
    res=[list(mylist[0])]
    mylist.remove(res[0])
    for l in mylist:
        if len(set(l) & set().union(*res))==0:
            res.append(l)
            mylist.remove(l)
    final_res.append(res)

输出:

print final_res
>> [[['a', 'b'], ['c', 'd']], [['a', 'c'], ['d', 'e']], [['b', 'c']], [['e', 'c']]]

关于Python - 将列表转换为列表列表,每个条目包含唯一组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43134741/

相关文章:

python - 无法安装python包

python - 如何找到旋转图像边界框的新坐标以修改其xml文件以进行Tensorflow数据增强?

python - 我不明白这个KeyError?

Java lambda 交集两个列表并从结果中删除

python - 过滤 Python 列表时出现意外输出 : What am I doing wrong?

python - 如何在不保留对连接器的引用的情况下连接到 python 中的 GObject 信号?

python - 如何使用 mysqlconnector 在 SQLAlchemy 中设置 FOUND_ROWS 的 client_flags 以返回受影响的行

python - 就地修改列表 : Calculating a sieve of primes in a python list

c# - 将列表与列表框同步?

Python - 运行代码(迭代?)只能运行一次