Для чего в строке используются квадратные скобки?
h1,m1,s1,h2,m2,s2 = [int(input()) for i in 'aaaaaa']
print((h2-h1)*3600+(m2-m1)*60+(s2-s1))
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Тут выражение генератора списка:
h1,m1,s1,h2,m2,s2 = [int(input()) for i in 'aaaaaa']
У него вид: [<значение_элемента_списка> for <значение_из_итератора> in <итератор>] (после <итератор> еще можно написать условие типа ... in <итератор> if <условие>]).
Т.е. тут говорится следующее:
- Сделай итерацию по строке
'aaaaaa' - На каждую итерацию считай вводимое значение и приведи его к числу
int(input()) - Полученные числа сохрани в списке
- Сделай распаковку элементов списка в переменные слева
Другое дело, что это можно было сделать проще, без использования ненужных элементов:
[int(input()) for _ in range(6)]
Строка 'aaaaaa' нужна была только для того, чтобы 6 раз вызвать int(input()), поэтому ее убираем и ставим range(6), а т.к. i тоже не используется, то вместо него ставим символ-заменитель _
Автор решения: Kers
→ Ссылка
Вы выражение в квадратных скобках это генератор списка.
Чтобы было код стал более читаемым его можно развернуть примерно так:
l = []
for i in range(6):
l.append(int(input()))
h1,m1,s1,h2,m2,s2 = l
print((h2-h1)*3600+(m2-m1)*60+(s2-s1))