リストの値は、リストの他の値の1つに含まれているかどうかを確認するための最も効率的な方法は何ですか?

nadavfr31:

最近、私は、リストの値が同じリストの他の値に含まれているかどうかをチェックについてです私は自分のコードを持っているという問題を解決しようとしてきました。それはそのように見えるので、私の特定のリストには、電話番号が含まれています。

['972526174656' , '526174656' , '174656'] 

しかし、私はそれが見えるようにしたい方法は、次のとおりです。

['972526174656']

私は別の内部のためのために行うための最も簡単な方法でそれを解決しようとしています:

phones_list = ['972526174656' , '526174656' , '174656']
drop_list = []
for phone in phones_list:
    for phone2 in phones_list:
        if phone2.contains(phone) and phone2!=phone:
           drop_list.append(phone)
phones_list = list(set(phones_list) - set(drop_list))

この例では動作しますが、その効率が悪く、私の元のデータに私がお見せしたような300万例を持っています。だから、効率が成功するために私のコードのための鍵です!

私は社会がこの問題を解決するために私を助けることができる願っています。ヘルプのあらゆる種類のためにありがとうございました!

quamrana;

あなたは使用することができますitertools.permutations

phones_list = ['972526174656' , '526174656' , '174656']
drop_list = []

for p1,p2 in itertools.permutations(phones_list, 2):
    if p1 in p2:
        drop_list.append(p1)

phones_list = list(set(phones_list) - set(drop_list))

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=298974&siteId=1