widzę, że poniższy kod może sprawdzić, czy słowo jestporównywania ciągów w liście do strun w liście
list1 = 'this'
compSet = [ 'this','that','thing' ]
if any(list1 in s for s in compSet): print(list1)
Teraz chcę sprawdzić, czy słowo na liście jest w jakimś innym liście, jak poniżej:
list1 = ['this', 'and', 'that' ]
compSet = [ 'check','that','thing' ]
Jaki jest najlepszy sposób, aby sprawdzić, czy słowa listy1 są w compSet i robi coś na nieistniejących elementów, na przykład dołączając „i” do compSet lub kasowanie „i” z list1?
__________________update___________________
Właśnie okazało się, że robi to samo nie działa z sys.path. Poniższy kod czasami dodaje ścieżkę do sys.path, a czasami nie.
myPath = '/some/my path/is here'
if not any(myPath in s for s in sys.path):
sys.path.insert(0, myPath)
Dlaczego to nie działa? Również, jeśli chcę zrobić tę samą operację na zbiorze moich ścieżkach,
myPaths = [ '/some/my path/is here', '/some/my path2/is here' ...]
Jak mogę to zrobić?
Ponowna aktualizacja, co nie działa? Czy to powoduje błąd? Być może po prostu nie używasz odwrotnych ukośników w zmiennej 'myPath'? – brianpck
@brianpck Dzięki, zaktualizowałem. Powyższa funkcja dodająca ścieżkę do sys.path działa niekonsekwentnie. Czasami działa, a czasem nie. Być może jest to specyficzny problem mojego środowiska, tak myślę ... Nawiasem mówiąc, jeśli robię to dodając do ścieżki coś na liście ścieżek z sys.path, czy funkcja Intersection jest najlepsza? – noclew
Jeśli chcesz znaleźć ścieżki znajdujące się na obu listach, to tak, przecięcie jest najlepszym sposobem. W odniesieniu do 'sys.path', zalecam zadać inne pytanie, czy jest to problem, ponieważ jest to naprawdę osobny problem. – brianpck