1

list_a を他の多くのものと比較する必要があります。私の問題は、他のリストに重複したアイテムがあるときに始まります(other_bに2つのkがあります)。

私の目標は、同じアイテム (最大 3 つの一致するアイテム) を持つすべてのリストを除外することです。

list_a =  ['j','k','a','7']
other_b =  ['k', 'j', 'k', 'q']
other_c = ['k','k','9','k']

>>>filter(lambda x: not x in list_a,other_b)
['q']

['k', 'q'] を返す方法が必要です。'k' は list_a に 1 回しか現れないからです。

list_a と other_c を set() で比較すると、k という 1 つの要素のみが返されるため、私の目的には適していません。['k','9','k'] が必要な間

私が十分に明確だったことを願っています。

ありがとうございました

4

1 に答える 1

1

list_a次の関数は、最初の引数とother_b2 番目の引数として指定すると、必要な新しいリストを返します。

def my_comp(my_list, other_list):
    other_cop = other_list[:]
    for x in my_list:
        try:
            other_cop.remove(x)
        except ValueError:
            pass
    return other_cop

をコピーし、コピーother_listからすべての要素を削除my_listします。削除する要素が にない場合、other_listremove発生するValueErrorため、この例外をキャッチして何もしない必要があります。

于 2012-10-20T17:16:01.310 に答える