假设无序的listA = [1 2 3]
s.t所有元素都不同
和无序listB = [1 2 3 4 5]
s.t所有元素不同的
原始问题是:
我如何选择len(listA)
次,listB的元素,
不在列表中
并且彼此不同。
更新为:
我如何选择len(listB)-len(listA)
次,listB的元素,
不在列表中
并且彼此不同。
对于更新的案例,Pynchia给出的答案变为:
newList = list(set(bRightbLeft) - set(aLeft))[:len(bRightbLeft)-len(aLeft))]
答案 0 :(得分: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]
答案 1 :(得分:1)
如果你不关心你可以做哪些元素
newList = [ b for b in bList if set(b) not in aList][0:k]