Простой способ понять однострочный цикл - использовать более простые вещи:
>>> l = ["a", "b", "c"]
>>> [ltr for ltr in l]
['a', 'b', 'c']
Для вашего первого вопроса использование квадратных скобок создает список, и он добавляет значение ltr
в список, перебирая список l
.
enumerate
- это встроенная функция, которая позволяет иметь счетчик при циклическом повторении итерируемого объекта. Здесь i
перебирает индексы списка, в то время как ltr
перебирает элементы списка l
. Вот еще один пример:
>>> [i for i, ltr in enumerate(l)]
[0, 1, 2]
>>> [ltr for i, ltr in enumerate(l)]
['a', 'b', 'c']
Additioanlly, у вас есть условие в конце:
>>>[ltr for i, ltr in enumerate(l) if i>0]
['b', 'c']
Здесь используются только элементы списка l
с индексами, большими 0
.
Надеюсь, это поможет понять концепции:)