0
私は、任意の数の項目を含む任意の数のリストを取る単純なスクリプトを持っています。Python 3:リスト内の文字列を比較するために
def lists(*usrin):
# STRINGS IN MULTIPLE LISTS
repeat_strings = set()
for a, b in itertools.combinations(usrin, 2):
repeat_strings.update(set(a).intersection(b))
print(', ' .join(repeat_strings))
ユーザーとして、私は、次の引数の関数を渡す場合:
lists(['g', 'gh', 'ghj', 'g'], ['j', 'ju', 'gh', 'gk', 'gn'], ['gn'])
私は複数のリストに表示されますこれらのリストと表示値以上の反復を取得する必要があり、ここで私がこれまで持っているものです
私が得ることを期待する:出力として
gn, gh
、しかし私が手:
gh
gh
gn, gh
最初の2つの「gh」がどこから来ているのか分かりません。
私は、関数呼び出しは次のようになりながら、に別のリストを追加した場合:
lists(['g', 'gh', 'ghj', 'g'], ['j', 'ju', 'gh', 'gk', 'gn'], ['gn'], ['g', 'gk'])
私が得ることを期待する:
g, gn, gk, gh
をしかし、その代わり得る:
gh
gh
g, gh
g, gn, gh
g, gn, gk, gh
g, gn, gk, gh
私は私が作ったforループを誤解していると思います。私が間違っていることを誰かが説明できますか?
私はそれに気づかなかったと信じられません。時にはもう一組の目が必要な場合もあります。ありがとうございました! –
問題に直面したときには、あなたのテディベア/マウス/ペン/同僚/誰かにそれを説明するようにしてください。あなたがそれを詳細に説明するのに十分なほど愚かで、一般的には説明の途中で、 :) –