Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 24, 2013 15:20:55

TroSer
От: Харьков
Зарегистрирован: 2013-11-13
Сообщения: 65
Репутация: +  3  -
Профиль   Отправить e-mail  

Массив

1. Оборачивайте код в тэги! Так будет легче и вам и тому кто захочет помочь.
2. Для расширенных вопросов лучше создавать новую тему. Так больше вероятность что вы получите быстрый и максимально удовлетворяющий требованиям ответ.
3. Теперь по сабжу. Если вы хотите менять элементы матрицы, и выводить ее без скобок, предоставьте, пожалуйста, пример матрицы, которую вам нужно изменить.

Офлайн

#2 Дек. 24, 2013 19:37:20

orondil
Зарегистрирован: 2013-12-24
Сообщения: 4
Репутация: +  1  -
Профиль   Отправить e-mail  

Массив

Recklessly.
Помогите пожалуйста с массивом!Задание: Определить номер первого столбца матрицы, в котором есть хотя бы один отрицательный элемент.Это нужно сделать через процедуры.
from random import randint
def init():
matr = []
for i in range(5):
matr.append([])
for j in range(5):
matr[i].append(randint(-1, 5))
return matr

def pr(matr):
tmp = ''
for i in range(5):
for j in range(5):
tmp += ' %01d' % matr[i][j]
print tmp
tmp = ''

def pr_(matr): # печатает в строках столбцы (для наглядности)
tmp = ''
for i in range(5):
for j in range(5):
tmp += ' %01d' % matr[j][i]
print tmp
tmp = ''

def proc(matr):
for i in range(5):
for j in range(5):
if matr[j][i]<0:
return i
return -1

mtr = init()
pr(mtr)
print '\n'
pr_(mtr)
print proc(mtr)

Офлайн

#3 Дек. 24, 2013 19:47:35

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Массив

orondil
ты новый аккаунт зарегистировал ? Тебе ж дали решение

Офлайн

#4 Дек. 24, 2013 22:39:20

orondil
Зарегистрирован: 2013-12-24
Сообщения: 4
Репутация: +  1  -
Профиль   Отправить e-mail  

Массив

Budulianin
matrix = (
( 1, 2, 3, 4, 5, 6, 7, ),
( 1, 2, 3, 4, -5, 6, 7, ),
( 1, 2, 3, 4, 5, 6, 7, ),
( 1, 2, -6, 4, 5, 6, 7, ),
( 1, 2, 3, 4, 5, 6, 7, ),
( 1, 2, 3, 4, 5, 6, 7, ),
( 1, 2, 3, 4, 5, 6, 7, ),
)
def find_col(matrix):
for vector in matrix:
for elem in vector:
if elem < 0:
return vector.index(elem)
print(find_col(matrix))
Я другой человек, просто приведенное Budulianin решение на его же примере возвращает 4, хотя по условию задания должно возвращать 2. Там нашли столбец первого встретившегося отрицательного числа, а просили первый столбец с хотябы одним отрицательным.

Отредактировано orondil (Дек. 24, 2013 22:44:25)

Офлайн

#5 Дек. 24, 2013 23:02:00

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Массив

from random import randint as rand
def gen_random_matrix(x=3,y=3,ot=-10,do=10):
	return [[ rand(ot,do) for _ in range(y)] for _ in range(x)]
def check(matrix):
	print matrix
	for b in range(len(matrix)):
		for a in range(len(matrix[0])):
			if matrix[a][b] <0:
				return b+1
print check(gen_random_matrix())

Офлайн

#6 Дек. 25, 2013 11:22:31

Recklessly
Зарегистрирован: 2013-12-25
Сообщения: 1
Репутация: +  -1  -
Профиль   Отправить e-mail  

Массив

orondil
Огромное спасибо!

Офлайн

#7 Дек. 25, 2013 21:00:46

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Массив

Singularity
Кернигана и Ритчи недавно читал ?

def find_col(matrix):
    for num, vector in enumerate(zip(*matrix)):
        for elem in vector:
            if elem < 0:
                return num



Офлайн

#8 Дек. 25, 2013 21:04:13

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Массив

Budulianin
У тебя не правильный вариант ибо возвращает первую строчку, а надо первый столбец

Отредактировано Singularity (Дек. 25, 2013 21:32:59)

Офлайн

#9 Дек. 25, 2013 21:23:56

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Массив

Singularity
У тебя не правильный вариант ибо возвращает первую строчку, а надо первый столбец

Хорошо подумал ?

Она возвращает номер столбца



Отредактировано Budulianin (Дек. 25, 2013 21:24:29)

Офлайн

#10 Дек. 25, 2013 21:27:14

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Массив

Budulianin
я не думаю - я тестирую

## -- End pasted text --
In [4]: find_col(i)
Out[4]: 1
In [5]: i = [[1,2,-13],[1,-4,6],[1,3,7]]
In [6]: 

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version