for i in [0, 1, 2, 3, 4, 5]:
for j in [0, 1, 2, 3, 4, 5]:
print i + j
for i in [0, 1, 2, 3, 4, 5]:
for j in [0, 1, 2, 3, 4, 5]:
print i + j
for i, j in zip(range(10), range(10)):
print i + j
test157ні
возможно ли делать такие обходы одним фором?
slav0nicя уже пробовал с зипом - но это не то, в моем примере видно же - что каждый раз с для каждого элемента i будет проходится весь массив j - вот нужен именно такой эффект, когда нужно сделать обход всех комбинаций. zip дает иной эффект.
for i, j in zip(range(0,5), range(5,10)):
print i, j
0 5
1 6
2 7
3 8
4 9
for i in range(0,5):
for j in range(0,5):
print i,j
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2
2 3
2 4
3 0
3 1
3 2
3 3
3 4
4 0
4 1
4 2
4 3
4 4
for x, y in [(x,y) for x in [1,2,3] for y in [4,5,6]]:
print x,y
def expand_list(l):
result = []
for item in l:
if type(item) == type(list()): #а как, кстати, правильно узнавать тип переменной? =)
result = result + expand_list(item)
else:
result = result + [item]
return result
>>> l = [1,2,3,[4,5,[6,7,8,[9,10]]]]
>>> expand_list(l)
[1,2,3,4,5,6,7,8,9,10]
unelтип можно указывать просто - написав list без скобок
если необходимо просто пройтись по всем элементам списка, то его можно рекурсивно “развернуть” =)def expand_list(l):
result = []
for item in l:
if type(item) == type(list()): #а как, кстати, правильно узнавать тип переменной? =)
result = result + expand_list(item)
else:
result = result + [item]
return result>>> l = [1,2,3,[4,5,[6,7,8,[9,10]]]]
>>> expand_list(l)
[1,2,3,4,5,6,7,8,9,10]