Tengo un programa de Python que estoy tratando de crear donde el usuario puede ingresar una letra y el programa filtra todas las palabras que no comienzan con esta letra. Desafortunadamente, mi cerebro principiante y yo no podemos encontrar la manera de escribir esto en código, así que ¿alguna ayuda?

El código que ya tengo:

#Open list of words file and add to "content" variable
content = open('Word List').read().splitlines()
#Take the first character of every word and make a new variable to add that to.
firstchar = [x[0] for x in content]

#Ask the user which letter they'd like to use
print("Which letter would you like to use?")
u_selected = input("> ")

No mucho como puedes ver, pero estoy orgulloso de ello. Supongo que necesito algo que use firstchar[i] y u_selected para unir las dos letras.

0
Joyte 7 may. 2020 a las 06:48

3 respuestas

La mejor respuesta

Como lo ha hecho, puede usar [0] para acceder al primer carácter de una cadena. Lo siguiente agregará cada palabra a una nueva lista para usted si coincide con la condición especificada.

chosen_words = [word for word in content if word.lower()[0] == u_selected.lower()]

El .lower () es solo para convertir todo a minúsculas, para asegurarse de que se ignore el caso

1
ruby 7 may. 2020 a las 03:56

Las cadenas tienen sus propios métodos para facilitar las cosas con las cadenas.

dir(str)

Puede probar el comienzo de una cadena con .startswith (). Por ejemplo,

words     = open('Word List').read().splitlines()
new_words = [word for word in words if word.startswith('A')]
0
Bobby Ocean 7 may. 2020 a las 03:52

Para filtrar lo que necesitas hacer:

#Open list of words file and add to "content" variable
content = open('Word List').read().splitlines()

#Ask the user which letter they'd like to use
print("Which letter would you like to use?")
u_selected = input("> ")
filtered_words = [word for word in content if word.startswith(u_selected)
0
arthursribeiro 7 may. 2020 a las 03:56