Найти - Пользователи
Полная версия: Массив
Начало » Центр помощи » Массив
1 2 3 4
TroSer
1. Оборачивайте код в тэги! Так будет легче и вам и тому кто захочет помочь.
2. Для расширенных вопросов лучше создавать новую тему. Так больше вероятность что вы получите быстрый и максимально удовлетворяющий требованиям ответ.
3. Теперь по сабжу. Если вы хотите менять элементы матрицы, и выводить ее без скобок, предоставьте, пожалуйста, пример матрицы, которую вам нужно изменить.
orondil
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)
Singularity
orondil
ты новый аккаунт зарегистировал ? Тебе ж дали решение
orondil
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. Там нашли столбец первого встретившегося отрицательного числа, а просили первый столбец с хотябы одним отрицательным.
Singularity
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())
Recklessly
orondil
Огромное спасибо!
Budulianin
Singularity
Кернигана и Ритчи недавно читал ?

def find_col(matrix):
    for num, vector in enumerate(zip(*matrix)):
        for elem in vector:
            if elem < 0:
                return num
Singularity
Budulianin
У тебя не правильный вариант ибо возвращает первую строчку, а надо первый столбец
Budulianin
Singularity
У тебя не правильный вариант ибо возвращает первую строчку, а надо первый столбец

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

Она возвращает номер столбца
Singularity
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]: 
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