Как зациклить строку и добавить слова, начинающиеся с определенной буквы, в пустой список? - PullRequest
0 голосов
/ 21 сентября 2018

Так что для назначения мне нужно создать пустую переменную списка empty_list = [], затем создать цикл python над строкой и добавить каждое слово, начинающееся с 't', в этот пустой список.Моя попытка:

text = "this is a text sentence with words in it that start with letters"
empty_list = []
for twords in text:
    if text.startswith('t') == True:
        empty_list.append(twords)
    break
print(empty_list)

Это просто печатает один [т].Я уверен, что не правильно использую startswith().Как мне сделать так, чтобы это работало правильно?

Ответы [ 4 ]

0 голосов
/ 21 сентября 2018

Код ниже работает,

empty_list = []
for i in text.split(" "):
if i.startswith("t"):
    empty_list.append(i)
print(empty_list)

Проблема в вашем коде:

Вы повторяете каждую букву, это неправильно

0 голосов
/ 21 сентября 2018

Попробуйте что-то вроде этого:

text = "this is a text sentence with words in it that start with letters" t = text.split(' ') ls = [s for s in t if s.startswith('t')]

ls будет результирующим списком

Python отлично подходит для использования списочного понимания.

0 голосов
/ 21 сентября 2018
text = "this is a text sentence with words in it that start with letters"
print([word for word in text.split() if word.startswith('t')])
0 голосов
/ 21 сентября 2018

Рабочий раствор для вас.Вам также необходимо заменить text.startswith('t') на twords.startswith('t'), потому что теперь вы используете twords для перебора каждого слова вашего исходного оператора, хранящегося в text.Вы использовали break, который только заставил бы ваш код печатать this, так как после нахождения первого слова оно выйдет за пределы цикла for.Чтобы получить все слова, начинающиеся с t, вам нужно избавиться от break.

text = "this is a text sentence with words in it that start with letters"
empty_list = []
for twords in text.split():
    if twords.startswith('t') == True:
        empty_list.append(twords)
print(empty_list)
> ['this', 'text', 'that']
...