Как отфильтровать список слов из данной буквы? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть программа python, которую я пытаюсь создать, где пользователь может вводить букву, а программа отфильтровывает все слова, которые не начинаются с этой буквы. К сожалению, я и мой начинающий мозг не можем понять, как написать это в коде, так что любая помощь?

Код, который у меня уже есть:

#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("> ")

Не очень много, как вы можете видеть, но Я горжусь этим. Я полагаю, мне нужно что-то, что использует firstchar[i] и u_selected, чтобы сопоставить две буквы вместе.

Ответы [ 3 ]

1 голос
/ 07 мая 2020

Как и вы, вы можете использовать [0] для доступа к первому символу строки. Приведенный ниже код добавит каждое слово в новый список для вас, если оно соответствует указанному условию.

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

.lower () предназначен для преобразования всего в нижний регистр, чтобы убедиться, что регистр игнорируется

0 голосов
/ 07 мая 2020

Чтобы отфильтровать, что вам нужно сделать:

#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 голосов
/ 07 мая 2020

У строк есть собственные методы, упрощающие работу со строками.

dir(str)

Вы можете проверить начало строки с помощью .startswith (). Например,

words     = open('Word List').read().splitlines()
new_words = [word for word in words if word.startswith('A')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...