python – 忽略元素内部和列表的列表之间的组合,忽略对的排序

我有两个清单:

list1=['a','z','d','e','b']
list2=['d','b' ]

我需要这两个列表元素的组合(而不是排列).我已经尝试了itertools.combinations和itertools.product,但我没有得到我想要的.例如,(‘d’,’d’)将是错误的. (‘a’,’z’)也是错误的,因为’a’和’z’属于同一个列表(list1),并且它们中没有一个出现在list2中.最后,我不想要(‘d’,’e’)和(‘e’,’d’) – 只有这些对中的一对,因为顺序并不重要.理想的输出是:

('a','d'),('a','e'),'b'),('z',('d',('e','b')

编辑:通常,list2并不总是list1的子集,但我也想处理这种情况.这两个列表也可能存在重叠,而不是完整的子集.

解决方法

可能效率不高但您可以尝试以下方法

list1=['a','b' ]

result = []
for i in list1:
    for j in list2:
        if i != j and (j,i) not in result:
            result.append((i,j))
print(result)

结果:

[('a','b')]

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...