Mam listę:

list1 = ['tom.frank.phillips','jimmy.fund.roberts','markus.shane.sherman','glen.carl.smith']

Próbuję przetestować, czy następujące nazwy są zawarte w dowolnym miejscu na tej liście:

nameslist = ['shane', 'frank', 'dale', 'roberts', 'smith', 'tony']

Jeśli nie są one zawarte na oryginalnej liście, chcę wydrukować nazwę.

Próbowałem:

for name in nameslist:
    if name not in list1:
        print(name)

Ale kiedy to robię, wszystkie nazwy są drukowane.

-1
Tony 27 lipiec 2020, 23:25

1 odpowiedź

Najlepsza odpowiedź

Żadna z tych nazw nie jest elementem list1. Musisz sprawdzić, czy nazwa jest podchodem dowolnego elementu list1.

if not any(name in full_name for full_name in list1):
    print(name)

Innym sposobem jest po prostu skonfigurować wszystkie swoje długie imiona; Następnie użyj in na tym pojedynczym ciągu:

all_names = ' '.join(list1)
for name in names list:
    if not name in all_names:
        print(name)
1
Prune 27 lipiec 2020, 20:32