0

假设 unordered listA = [1 2 3]st all elements distinct
和 unordered listB = [1 2 3 4 5]st all elements distinct

最初的问题是:
我如何选择len(listA)时间,listB 的元素不在
listA 中
并且彼此不同。

更新为:
我如何选择len(listB)-len(listA)时间,listB 的元素不在
listA 中
并且彼此不同。

对于更新后的案例,Pynchia 给出的答案变为:
newList = list(set(bRightbLeft) - set(aLeft))[:len(bRightbLeft)-len(aLeft))]

4

2 回答 2

2

如果我理解正确,这应该可以解决问题

listA = [1,2,3]
listB = [1,2,3,4,5]

newlist = list(set(listB) - set(listA))[:len(listA)]
print(newlist)

它产生

[4, 5]

如您所见,不能保证列表有足够数量的元素(即 的大小listA

注意:最初(甚至现在部分)描述说输入列表中的元素可以重复。

在这种情况下,使用

listA = [1,2,3,2,1]
listB = [1,2,3,4,5,4,3,2,1]

set_A = set(listA)
newlist = list(set(listB) - set_A)[:len(set_A)]

产生

[4, 5]
于 2015-11-13T14:11:51.510 回答
1

如果你不关心你可以做哪些元素

newList = [ b for b in bList if set(b) not in aList][0:k]
于 2015-11-13T13:55:48.223 回答