Форум сайта python.su
0
# -*- coding: utf-8 -*-
arr=[]
ar = 0
for i in range(4): arr.append([])
for j in range(4):
for i in range(4):
ar =ar+1
arr[j].append(ar)
print("arr =", end=" ")
for j in range(4):
for i in range(4):
if 1 >= arr[j][i] or arr[j][i] <= 9:
print(" ",arr[j][i], end=" ")
else:
print("", arr[j][i], end=" ")
if i==3:
print()
print(" ",end=" ")
print()
print("arr =",arr)
Офлайн
568
Попробуйте вот такой код
arr=zip(*[iter(range(1,17))]*4) arr=map(list, arr) arr[1][1],arr[2][3]=arr[2][3],arr[1][1] print "arr =", arr
Офлайн
0
Сформулирую еще раз.
Как из списка arr вытащить элемент 16 ?
arr =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
Офлайн
15
Офлайн
0
Для списка arr2 я индексы вывожу так
arr2=[1,2,3]
print("arr2.index =",end=" ")
for i in range(1, 4):
print(arr2.index(i), end=" ")
print()
arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 16], [13, 14, 15, 12]]
Офлайн
43
список не может знать своего контекста, поэтому индекс так получить невозможно. Массивы в numpy, кажется, умеют это. Можно создать свой класс двумерного списка. Можно просто проитерировать с индексированием
arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 16], [13, 14, 15, 12]] for i,ls in enumerate(arr): for j,e in enumerate(ls): print('{} -> <{} {}>'.format(e,i,j))
Офлайн
857
>>> arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 16], [13, 14, 15, 12]] >>> print(*range(len(arr))) 0 1 2 3 >>> print(*range(len(arr[0]))) 0 1 2 3 >>>
Офлайн
0
arr2=[1,2,3]
print('arr2=',arr2)
print('arr2[1] =',arr2[1])
print('arr2.index(2) =',arr2.index(2))
arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 16], [13, 14, 15, 12]]
print('arr =',arr)
print('arr[1][1] =', arr[1][1])
Офлайн
63
py.user.next
Строка
print(*range(len(arr)))
Отредактировано 4kpt (Дек. 24, 2012 16:34:21)
Офлайн
43
cpv
def index(arr,required): for i,ls in enumerate(arr): for j,e in enumerate(ls): if e == required: return i,j arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 16], [13, 14, 15, 12]] print(index(arr,6)) (1, 1)
Офлайн