Как сложить элементы списков разной длины в Python
Итак.
Есть задача: сложить цифры во времени для получения 34 и вывести комбинаций этих цифр.
Пример: 19:59:57 будет 1+9+5+9+5+5 = 34, значит нужно вывести эту комбинацию 195957
В итоге нужно вывести все комбинации цифр, которые дают 34 (но при этом чтобы они были именно в формате времени, то есть первая цифра не может быть больше 2 и т.д.)
Пока выходит так (пока только начало):
# Часы, минуты, секунды и 10 для деления
a = list(range(24))
b = list(range(60))
c = list(range(60))
d = 10
# Нужно сложить целочисленное деление и остаток
a1 = [x // d for x in a]
a2 = [x % d for x in a]
a3 =
b1 = [x // d for x in b]
b2 = [x % d for x in b]
b3 =
c1 = [x // d for x in c]
c2 = [x % d for x in c]
c3 =
d1 =
print (d1)
Не знаю как сложить теперь каждый элемент трех списков друг с другом (если складывать при помощи zip, то получается что они складываются попарно и оставшиеся элементы в списках не складываются)
Ответы (2 шт):
Автор решения: Кирилл Малышев
→ Ссылка
for h in range(24):
for m in range(60):
for s in range(60):
if h // 10 + h % 10 + m // 10 + m % 10 + s // 10 + s % 10 == 34:
print(f'{h:02}{m:02}{s:02}')
Автор решения: asd192
→ Ссылка
import time
class Clock:
def __init__(self, h=0, m=0, s=0):
self.h = h
self.m = m
self.s = s - 1
def __next__(self):
self.s += 1
if self.s == 60:
self.s = 0
self.m += 1
if self.m == 60:
self.h += 1
self.m = 0
if self.h == 24:
self.s = 0
self.m = 0
self.h = 0
return f"{self.h:02}:{self.m:02}:{self.s:02} - {self.h + self.m + self.s}"
def __iter__(self):
self.h = 0
self.m = 0
self.s = 0
return self
clock = Clock()
for i in clock:
print(i)
time.sleep(0.1)