0
def removeCommonElements(tup1,tup2):
count=0
lis1=list(tup1)
lis2=list(tup2)
while count<=len(lis1):
    for i in lis1:
        if i in lis2:
            lis1.remove(i)
            lis2.remove(i)
    count+=1
    return tuple(lis1+lis2)

print(removeCommonElements((1,2,3,4), (3,4,5,6)))

としての出力が必要で、出力として(1, 2, 5, 6)を取得しています(1, 2, 4, 4, 5, 6)。私は自分の間違いを見つけることができませんでした。誰でも私を助けてもらえますか?ありがとうございました

4

2 に答える 2

1
for i in lis1:
        if i in lis2:
            lis1.remove(i)
            lis2.remove(i)

コードのこの部分は、リストを変更しながらリストをループしています。したがって、4 は除外されます。set を使用してこれを行うことができます。

>>> def removeCommon(x, y):
...     x = set(x)
...     y = set(y)
...     return tuple(set.union(x, y)-set.intersection(x, y))
... 
>>> a = (1,2,3,4)
>>> b = (3,4,5,6)
>>> removeCommon(a, b)
(1, 2, 5, 6)
于 2013-08-07T00:37:59.737 に答える