Найти - Пользователи
Полная версия: Из одномерного массива сделать двумерный
Начало » Python для новичков » Из одномерного массива сделать двумерный
1 2
kate
Piton23
Раз уж тайна задачи остается за 7 замками то объясним хотяб ей что за ошибка )
Q - последовательность, итерируемый объект
число (такое как 5, 18 или 69) - не итерируемый объект

Так вот функция len над итерируемым объектом возвращает количество, если список то количество элементов, если строка то количество символов.

Вы же когда запрашиваете len(S) спрашиваете чему равна длина первого элемента списка, т.е. len(1) на что и получаете ошибку. А ведь действительно нельзя ж подсчитать длину числа.

В итоге вы либо говорите конкретную задачу которую вам нужно решить и получаете решение за пол часа, т.е. приводите пример двухмерного массива. Либо если вам нужен репетитор чтобы спрашивать а что в этой строчке не так, а что в этой, я думаю желающих по уменьшится :)
Спасибо всем огромное, то что я хотела получилось сделать:) Да тайны никакой нет, у нас с этого семестра начался курс по распознаванию изображений, вот делаю лабораторную работу(нужно сделать интегральное представление изображения), для программирования выбрала язык python, вот сижу потихоньку читаю книги и разбираюсь :) наверное с моей стороны совсем нагло будет попросить помочь еще перевести данный код:
public static int SumOfRectangle(int[,] integralImage, Rectangle rect)
{
int A = 0, B = 0, C = 0, D = 0;
if (rect.Top > 0 || rect.Left > 0)
if (rect.Top <= 0)
D = integralImage[rect.Left - 1, rect.Bottom];
else
if (rect.Left <= 0)
B = integralImage[rect.Right, rect.Top - 1];
else
{
A = integralImage[rect.Left - 1, rect.Top - 1];
B = integralImage[rect.Right, rect.Top - 1];
D = integralImage[rect.Left - 1, rect.Bottom];
}

C = integralImage[rect.Right, rect.Bottom];
return A + C - B - D;
}
Тут есть 2 метода - integralImage и Rectangle rect, их я реализовала у меня они intimage и rectangle соответственно. Вот попыталась сейчас перевести данный код, но как всегда мои попытки тщетны:)
from rectangle import rectangle
from intimage import image

def SumOfRectangle(image, rect):
A = 0
B = 0
C = 0
D = 0
if rectangle([rect1]) > 0 || rectangle([rect2]) > 0:
if rectangle([rect1]) <=0:
D = intimage(rectangle([rect2]-1), [rect3]))
else:
if rectangle([rect2]) <=0:
B = intimage(rectangle([rect4]), [rect1] - 1)
else:
A = intimage(rectangle([rect2] - 1, [rect1] - 1)
B = intimage(rectangle([rect4], [rect1] - 1)
D = intimage(rectangle([rect2] - 1, [rect3])
C = intimage(rectangle([rect4]), [rect3])
return A + C - B - D
FishHook
kate
Тут есть 2 метода - integralImage и Rectangle rect, их я реализовала у меня они intimage и rectangle соответственно. Вот попыталась сейчас перевести данный код, но как всегда мои попытки тщетны:)
from rectangle import rectangle
from intimage import image

def SumOfRectangle(image, rect):
A = 0
B = 0
C = 0
D = 0
if rectangle([rect1]) > 0 || rectangle([rect2]) > 0:
if rectangle([rect1]) <=0:
D = intimage(rectangle([rect2]-1), [rect3]))
else:
if rectangle([rect2]) <=0:
B = intimage(rectangle([rect4]), [rect1] - 1)
else:
A = intimage(rectangle([rect2] - 1, [rect1] - 1)
B = intimage(rectangle([rect4], [rect1] - 1)
D = intimage(rectangle([rect2] - 1, [rect3])
C = intimage(rectangle([rect4]), [rect3])
return A + C - B - D
Какая феерическая чушь, Господи!
Может для начала, всё таки стоит почитать учебник то?
Щито это вообще такое
rectangle([rect1])
[rect2] - 1
У Вас нездоровая любовь ко всему квадратному, к скобкам, например, или вы таким странным образом пытаетесь получить член списка по индексу?
agalen
Этот код переносится просто:
def SumOfRectangle( integralImage, rect ):
A = B = C = D = 0
if rect.Top > 0 or rect.Left > 0:
if rect.Top <= 0:
D = integralImage[rect.Left - 1, rect.Bottom]
elif rect.Left <= 0:
B = integralImage[rect.Right, rect.Top - 1]
else:
A = integralImage[rect.Left - 1, rect.Top - 1]
B = integralImage[rect.Right, rect.Top - 1]
D = integralImage[rect.Left - 1, rect.Bottom]

C = integralImage[rect.Right, rect.Bottom]
return A + C - B - D
При вызове, нужно передавать двухмерный массив и объект rect, у которого есть атрибуты Left, Right, Top, Bottom.
pyuser
А тема топика: Из одномерного массива сделать двумерный… количество вариантов просто потрясает :(
doza_and
pyuser
количество вариантов просто потрясает
Каков вопрос таков и ответ. Вот еще вариант
a=[1]# одномерный список
b=[a]# двумерный
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB