Форум сайта python.su
Задача состоит в том, чтобы определить расположение (индексы в массиве) нужного нам значения в двумерном массиве.
Я решил задачу банально через 2 цикла, пробегаясь по элементам:
#! -*- coding: utf-8 -*-Проблема в том, что при нахождении нужного нам элемента (значение 6) необходимо завершить оба цикла, для этого была введена переменная i.
arr = [, , ]
i = False
for x in xrange(3):
for y in xrange(3):
if arr == 6:
print x, y
i = True
break
if i: break
Офлайн
вызвать exception
Офлайн
например? притягивать сюда своё исключение за уши?
Офлайн
Я поступаю так, но не очень мне этот способ по душе:
for x in range(3):
for y in range(3):
if arr[x][y] == 6:
print x, y
break
else:
continue
break
Офлайн
bw, спасибо, невнимательно читаю книги
Офлайн
T0M
например? притягивать сюда своё исключение за уши?
# coding: utf8
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
try:
for x in range(3):
for y in range(3):
if arr[x][y] == 6:
raise Exception( (x,y) )
except Exception as e:
print e
Офлайн
кстате можно в функцию завернуть и вызывать return
Офлайн
может, тогда уж проще и естественней использовать банальный return?
Офлайн
Сразу же следущий подобный вопрос. Каким образом можно преобразовать двумерный массив к одномерому?
Мой вариант опять же сводится к быдлокоду, т.к. производится операция наполнения
a = [, , ]o7412369815963, спасибо
out =
for x in xrange(3):
for y in xrange(3):
out.append(a)
Отредактировано (Апрель 24, 2010 20:05:32)
Офлайн
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for a in arr:
for b in a:
print b
Офлайн