Как указать в if, что переменная должна быть последним элементом списка?
li = input().split('.')
done = []
for half in li:
half = list(reversed(half.split()))
for word in range(len(half)):
half[word] = half[word].lower()
half[word] = half[word].strip('.')
if word == 0:
half[word] = half[word].title()
done.append(half[word])
elif word == max(len(half)):
half[word] = half[word] + '.'
done.append(half[word])
else:
done.append(half[word])
print(done)
Нужно к последнему элементу списка прибавить точку. Подскажите как правильно это сделать.
TypeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_14036/2251526421.py in <module>
9 half[word] = half[word].title()
10 done.append(half[word])
---> 11 elif word == max(len(half)):
12 half[word] = half[word] + '.'
13 done.append(half[word])
TypeError: 'int' object is not iterable
Ответы (3 шт):
Автор решения: Sergey Derevianko
→ Ссылка
Есть несколько вариантов получения последнего элемента списка:
- any_list[-1]
- any_list[len(any_list)-1]
В вашем случае это делается так:
li = input().split('.')
done = []
for half in li:
half = list(reversed(half.split()))
for word in range(len(half)):
half[word] = half[word].lower()
half[word] = half[word].strip('.')
if word == 0:
half[word] = half[word].title()
elif word == half[-1]:
half[word] = half[word] + '.'
done.append(half[word])
print(done)
Автор решения: Andy Pavlov
→ Ссылка
У Вас как-то все сложно сделано. Можно все слова обработать, а потом на первое слово в списке натравить title(), а на последнее слово прибавить точку.
li = [e for e in input().split('.') if e]
done = []
for half in li:
row =[w.lower().strip('.') for w in reversed(half.split()) if w]
row[0] = row[0].title()
row[-1] += '.'
done.append(row)
print(done)
Автор решения: Сергей
→ Ссылка
If вообще трогать не нужно (я к формулировке вопроса). Последний элемент - он и есть последний. Добавил простую операцию в самый конец перед печатью.
'''
li = input().split('.')
done = []
for half in li:
half = list(reversed(half.split()))
for word in range(len(half)):
half[word] = half[word].lower()
half[word] = half[word].strip('.')
if word == 0:
half[word] = half[word].title()
done.append(half[word])
elif word == max(len(half)):
half[word] = half[word] + '.'
done.append(half[word])
else:
done.append(half[word])
done[-1]+='.' #добавляем точку к последнему элементу
print(done)
'''