Как использовать «.endswith» в списке строк в Python? - PullRequest
0 голосов
/ 15 сентября 2018

Я борюсь с этой задачей, которую мне дали в Python, и она касается модификации текста из данного текстового файла (режим чтения, а не записи).Вот фрагмент моего кода:

file = open("fileName")
suffix_list:[]

for e in file:
    elements=e.split()
    result=elements.endswith("a")
    suffix_list.append(result)

А затем я хочу напечатать длину списка с суффиксами:

print(len(suffix_list))

Вместо этого я получаю эту ошибку: "'list' objectне имеет атрибута «заканчивается»: «Я действительно не уверен, что здесь не так, может кто-нибудь помочь?»

Ответы [ 2 ]

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

Отметьте endswith строкой, а не списком.e.split() дает список.Повторяйте этот список и проверяйте endswith с каждым элементом в списке.

suffix_list = []

for e in file:
    for element in e.split():
        if element.endswith("a"):
            suffix_list.append(element)

print(len(suffix_list))

Кроме того, версия со списком:

suffix_list = [] 
for e in file:
    suffix_list.extend([element for element in e.split() if element.endswith('a')])

при условии, что вам необходим плоский список, а не список списков.

0 голосов
/ 15 сентября 2018
for e in file:
    elements=e.split()
    result=[ele for ele in elements if ele.endswith("a")]
    suffix_list.append(result)
...