Перебор списка с использованием понимания спискаPython

Программы на Python
Anonymous
Перебор списка с использованием понимания списка

Сообщение Anonymous »

Я практикую Python с нуля. У меня есть два вопроса в моем коде.
Код предназначен для умножения всех чисел в списке.
Код:

Код: Выделить всё

str1=input("Enter your little string: ")
list1=str1.split()
print(list1)
int_list=[int(list1[int(x)]) for x in range(0, len(list1)) if str.isdigit(list1[int(x)])]
x=1
int_list=[(x:=x*n) for n in int_list]
print(int_list)
print (x)
Для списка ['1', '2', 'Hello', '3', '4'] вывод:

Код: Выделить всё

Enter your little string: 1 2 Hello 3 4
['1', '2', 'Hello', '3', '4']
[1, 2, 6, 24]
24
Вопрос 1. Обратите внимание, что в 4-й строке кода я выполняю итерацию из диапазона (0, len(list1)), а не (

Код: Выделить всё

range(0, len(list1)-1)
потому что без -1 вывод x верен; а при -1 почему-то не учитывается последний элемент списка. Почему?
Вопрос 2: Видите ли, я использую понимание списка для создания нового списка (который мне вообще не нужен и не используется). Хотя я печатаю «x» для желаемого результата. Могу ли я сделать что-то подобное, не создавая ненужный список и сохраняя значение непосредственно в «x»? Что-то вроде «целочисленного понимания»? :D (не знаю, я новичок в Python, и прошло всего 3 дня)

Подробнее здесь: https://stackoverflow.com/questions/788 ... prehension

Вернуться в «Python»