Как упростить вложенные циклы?
l1 = ("*","+")
for i1 in l1:
for i2 in l1:
for i3 in l1:
for i4 in l1:
for i5 in l1:
for i6 in l1:
for i7 in l1:
for i8 in l1:
for i9 in l1:
for i10 in l1:
print([i1, i2, i3, i4, i5, i6, i7, i8, i9, i10])
Как оставить тот же вывод, но сделать код человеческим?
Ответы (3 шт):
Автор решения: Qwertiy
→ Ссылка
chs = ("*", "+")
for i in range(1024):
print([chs[(i >> x) & 1] for x in range(10)])
Автор решения: extrn
→ Ссылка
from itertools import product
for row in product("*+", repeat=10):
print(list(row))
Автор решения: user207200
→ Ссылка
bits = 10
trans_rule = str.maketrans({'0': '*', '1': '+'})
for i in range(len(trans_rule) ** bits):
print(list(f'{i:0{bits}b}'.translate(trans_rule)))