Iterowanie po literach po elementach listy.

0

Hej, mam szybkie pytanie, mianowicie jak iterować w Pythonie po literach po elementach listy (zakładając, że każdy element listy jest typu str). Przykładowo mamy listę państw:

countries_list = [Polska, Czechy, Francja, Japonia]

I chcemy wyświetlić tylko państwa, które mają w nazwie literę „e”.
Z góry dzięki za pomoc.

3
for country in countries_list:
    for letter in country:
        if letter == 'e':
            print(country)
            break

Ale to by było przekombinowane, bo w Pythonie możesz sprawdzić, czy 'e' jest w stringu bez jawnego iterowania:

for country in countries_list:
    if 'e' in country:
        print(country)

BTW. w Twojej liście państw brakuje cudzysłowów.

1

Na podwójnego fora też wpadłem zaraz po dodaniu posta, ale o drugim sposobie nie wiedziałem, a przyda się do wyrażenia listowego. Także wielkie dzięki :)

3

Możesz też użyć wbudowanych funkcji takich jak filter, wówczas kod może wyglądać tak:

countries = ['Polska', 'Czechy', 'Francja', 'Japonia', 'Indie']
counteris_with_e = filter(lambda country: 'e' in country, countries)

print("Odfiltrowane kraje = {}".format(list(counteris_with_e)))

filter zwróci Ci iterable, więc albo iterujesz po tym, albo przerabiasz na listę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1