Mam listę pełnych nazw z pliku CSV, ale chcę zastosować mój następny kod do imion z tej listy. Lista wygląda tak:

['michelle rodriguez', 'dexter king', 'gurukavari']  

Ale potem przez kilka tysięcy nazw. Jak widać, niektóre z nazw nie zawierają nazwiska, a niektóre. Jak utworzyć nową listę, która zawiera tylko pierwsze nazwy z tej listy?

0
Nienke Luirink 2 czerwiec 2018, 14:33

5 odpowiedzi

Najlepsza odpowiedź

Użyj rozumienia listy:

lst = ['michelle rodriguez', 'dexter king', 'gurukavari'] 
print([x.split()[0] for x in lst])

# ['michelle', 'dexter', 'gurukavari']
3
Austin 2 czerwiec 2018, 11:35
name = "Saurabh Chandra Patel"
first_name = name.rsplit(' ', 1)[0]
last_name = name.rsplit(' ', 1)[1]
  1. First_name = Saurabh Chandra
  2. Last_name = Patel.

Jeśli nazwa = "Saurabh Patel"

  1. First_name = Saurabh.
  2. Last_name = Patel.
0
Saurabh Chandra Patel 1 sierpień 2019, 08:09

Użyj funkcji Split, aby oddzielić imię i nazwisko z listy nazw i przesuń listę do ostatniego elementu.

Kod:

    names = ['michelle rodriguez', 'dexter king', 'gurukavari'] 
    firstname = []
    for i in range(0,len(names)):
        firstname.append(names[i].split()[0])
    print(firstname)

Wynik:

['michelle', 'dexter', 'gurukavari']
0
Usman 2 czerwiec 2018, 12:03

Radziłoby użyć funkcji Map i podzielić każdy z iterable przedmiotów według miejsca przestrzeni i zwróci tylko pierwsze elementy podziału.

0
Kox 2 czerwiec 2018, 11:38

Możesz użyć funkcji mapy, jak: -

a = ['michelle rodriguez', 'dexter king', 'gurukavari'] 
b= map((lambda x: x.split()[0]), a) # ['michelle', 'dexter', 'gurukavari']
1
Rupal 2 czerwiec 2018, 11:43