Мне нужно поменять элемент в матрице, используя функцию python

Я хочу создать функцию, которая принимает матрицу в качестве аргумента и делает следующее:

  1. Меняет местами первый и последний элементы в каждой строке
  2. Меняет местами 2-ю и последнюю строку
  3. Возвращает измененную матрицу

Я предполагаю, что это должно быть сделано с использованием индексов, но я не понимаю, как именно.

matrix = [[1,2,3],[4,5,6],[7,8,9], ['a','b','c','d']
def fun(matrix):
    i = 0 
    j = 0
    for i in matrix[i][j]:
         # for the 1st task
            matrix[i][0] = matrix[i][-1]
            matrix[i][-1] = matrix[i][0]
        # for the 2d task
        if i = 1:
            matrix[1][j]= matrix[-1][j]
            matrix[-1][j] = matrix[1][j]
    return matrix[i][j]

print(change(matrix))

Что неверно?

Ваша матрица не является матрицей, поскольку ее строки имеют разные размеры. Это все усложняет. Это намеренно?

mapf 21.12.2020 20:24

верно, это была заданная задача

JF_01 21.12.2020 20:31

Мне неудобно делать за вас домашнюю работу, поэтому я лучше дам вам несколько общих советов. Вы должны изучить как работают циклы в python, а также понять свою структуру данных. Похоже, вы не понимаете, как выглядит ваша матрица и как правильно обращаться к ее элементам. Как только вы поймете эти две вещи, вы сможете выполнить свою задачу самостоятельно.

mapf 21.12.2020 20:40

на самом деле это не домашняя работа, это для самостоятельного изучения, и я пытаюсь понять, как это должно быть сделано, потому что мы потратили на это мало времени...

JF_01 21.12.2020 20:52

Я предлагаю вам отойти от кода Python и описать словами шаги, необходимые для выполнения каждой из трех задач.

Code-Apprentice 21.12.2020 20:53

Я также предлагаю вам взглянуть на использование функции среза в списках, чтобы помочь

itprorh66 21.12.2020 21:05
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
6
592
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы хотите этого добиться?

Исходная матрица:

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
['a', 'b', 'c', 'd']

Изменена матрица:

[3, 2, 1]
['d', 'b', 'c', 'a']
[9, 8, 7]
[6, 5, 4]

Если да, то это будет код:

matrix = [[1,2,3], [4,5,6], [7,8,9], ['a','b','c','d']]

def display(matrix):
  for row in matrix:
    print(row)
  print()

# displaying original matrix
print("Original matrix: \n")
display(matrix)

def swapElements(matrix):
  for row in matrix:
    row[0], row[len(row) - 1] = row[len(row) - 1], row[0]

def swapLines(matrix):
  matrix[1], matrix[len(matrix) - 1] = matrix[len(matrix) - 1], matrix[1]

def doAllswaps(matrix):
  swapElements(matrix)
  swapLines(matrix)
  return matrix

# displaying changed matrix
print("Changed matrix: \n")
display(doAllswaps(matrix))

Другие вопросы по теме