Używanie funkcji startswith () wewnątrz list w pythonie
Miałem listę z następującymi ciągami poniżej
some_list = ['9196358485','9966325645','8846853128','8-4-236/2','9-6-32/45','Need to fetch some strings']
Z powyższych ciągów chcę tylko ciągów, które nie zaczynają się od91,9,8
ale chcę zacząć od smyczków8-, 9-
więc poniżej jest mój kod
[i for i in some_list if all(not i.startswith(x) for x in ['91','8','9'])]
wynik:
['Need to fetch some strings']
W powyższym, używając['91','8','9']
ponieważ warunek usuwa łańcuchy zaczynające się od9 and 8
co jest poprawne, ale nie chcę9-, 8-
również, aby zostać usuniętym z listy, w rzeczywistości moim zamiarem jest, jeśli ciągi zaczynające się od9 and 8
powinny być ignorowane jak powyżej i łańcuchy zaczynające się od9- and 8-
nie należy ignorować, czy możemy napisać dwa warunki w jednym wierszu z koncepcją rozpoczynania ciągów8-,9-
i ignorowanie, gdy zaczyna się łańcuch9 or 8
w powyższym kodzie napisałem.
Czy ktoś może mi powiedzieć, jak to zrobić .............
Edytowany kod:
Dzięki za wszystkie wsparcie dla u r, jeśli nie sądzisz, że to kolejne pytanie, na które miałem jakieś rzeczywiste wyjście, na którym nie działa poniższy kod
some_list = ['Mr K V Prasad Reddy(MD)',
'+(91)-9849633132, 9959455935',
'+(91)-9849633132',
'Near NRI College,Opp Vijaya Bank,Nizam Pet Road,Nizampet,Hyderabad - 502102',
'9196358485',
'9966325645',
'8846853128',
'8-4-236/2',
'9-6-32/45',
'Need to fetch some strings']
Kiedy zastosuję kod bwlow za pomocą wyrażenia regularnego, otrzymałem następujący wynikwynik:
['Mr K V Prasad Reddy(MD)',
'+(91)-9849633132, 9959455935',
'+(91)-9849633132',
'Near NRI College,Opp Vijaya Bank,Nizam Pet Road,Nizampet,Hyderabad - 502102',
'8-4-236/2',
'9-6-32/45',
'Need to fetch some strings']
Właściwie nie chcę wszystkich numerów telefonów z listy, więc będą one w powyższym formacie, czasami zaczynając od91
czasami8
czasami9
Jak możemy usunąć wszystkie te numery telefonów z listy?