Estoy haciendo una tarea en la que quiere que imprima los apellidos de una lista de nombres. También dice que solo necesito 2-3 líneas adicionales de código máximo. ¿Cómo haría esto?
Esta es una lección sobre listas y siempre he tenido problemas con la indexación de listas, pero esto me lleva más allá de lo que puedo pensar.
Aquí está mi código con la lista que proporcionaron:
names = [
"Maya Angelou",
"Chimamanda Ngozi Adichie",
"Tobias Wolff",
"Sherman Alexie",
"Aziz Ansari"
]
# Your code here...
name = [names[i].split() for i in range(len(names))]
print(name)
El resultado esperado es:
['Angelou', 'Adichie', 'Wolff', 'Alexie', 'Ansari']
Mi resultado:
[['' Maya ',' Angelou '], [' Chimamanda ',' Ngozi ',' Adichie '], [' Tobias ',' Wolff '], [' Sherman ',' Alexie '], [' Aziz ', 'Ansari']]
3 respuestas
Solo usa print([i[-1] for i in name])
en lugar de print(name)
De hecho, esto imprime ['Angelou', 'Adichie', 'Wolff', 'Alexie', 'Ansari']
Su código está completamente bien, solo necesita tomar la segunda variable después de dividir el nombre:
names = [my_names[i].split()[1:] for i in range(len(my_names))]
Y agregue una línea para unir los nombres si hay dos apellidos más o menos.
Todo el código:
my_names = [
"Maya Angelou",
"Chimamanda Ngozi Adichie",
"Tobias Wolff",
"Sherman Alexie",
"Aziz Ansari"
]
# Your code here...
names = [my_names[i].split()[1:] for i in range(len(my_names))]
fixed_names = [' '.join(name) for name in names]
print(fixed_names)
names = [
"Maya Angelou",
"Chimamanda Ngozi Adichie",
"Tobias Wolff",
"Sherman Alexie",
"Aziz Ansari"
]
for current_name in names:
print(current_name.split()[-1])
Salida:
Angelou
Adichie
Wolff
Alexie
Ansari
Para cada nombre en su lista de nombres, tome el nombre actual, divídalo en espacios en blanco e imprima el último elemento de la lista resultante.
Si realmente quieren que el resultado se vea como una lista, puede cambiarlo a una lista de comprensión:
names = [
"Maya Angelou",
"Chimamanda Ngozi Adichie",
"Tobias Wolff",
"Sherman Alexie",
"Aziz Ansari"
]
last_names = [current_name.split()[-1] for current_name in names]
print(last_names)
Salida:
['Angelou', 'Adichie', 'Wolff', 'Alexie', 'Ansari']
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.