Найти - Пользователи
Полная версия: Замена ячеек столбцов двумерного списка(матрицы)
Начало » Python для новичков » Замена ячеек столбцов двумерного списка(матрицы)
1
Helseeret
Пользователь вводит номера столбцов, которые нужно поменять местами между собой. Как поменять в 2 строчки кода я знаю, но не понятно почему данный ниже код не работает как нужно, так что кто знает в чем у меня ошибка, просьба сказать что сделать.
 a = new = [[11,12,13],[21,22,23],[31,32,33]]
x = 1
y = 0
for i in range(3):
    for j in range(3):
        if j == x:
            new[i][j] = a[i][y]
        if j == y:
            new[i][j] = a[i][x]
        else:
            new[i][j] = a[i][j]
for row in new:
    print(' '.join([str(elem) for elem in row]))
Rodegast
У тебя a и new ссылаются на один и тот же объект. Т.е. при изменении new у тебя будет меняться a и наоборот.
Helseeret
у думал об этом, пробовав создать список с тем же кол-вом столбцов и строк как в а и туда уже записывать, но тоже не помогало
 a = [[11,12,13],[21,22,23],[31,32,33]]
new = [[0] * 3 for i in range(3)]
x = 1
y = 0
for i in range(3):
    for j in range(3):
        if j == x:
            new[i][j] = a[i][y]
        if j == y:
            new[i][j] = a[i][x]
        else:
            new[i][j] = a[i][j]
for row in new:
    print(' '.join([str(elem) for elem in row]))
Vintets
Если по нубски, то вот
 a = [[11,12,13],[21,22,23],[31,32,33]]
x, y = 1, 0
for i in a:
    i[x], i[y] = i[y], i[x]
scidam
Может я что-то неверно понял, но в общем, задача-то очень проста:

 >>> x=[[1,2,3], [4,5,6],[7,8,9]]
>>> i, j=1, 2
>>> x[i], x[j] = x[j], x[i]
>>> x
[[1, 2, 3], [7, 8, 9], [4, 5, 6]]

Мы считаем, что вложенные списки – это строки матрицы. Хорошо, это наш выбор. Давайте, теперь считать
их столбцами. Задача будет иметь тоже решение… ?!
Rodegast
> Может я что-то неверно понял, но в общем, задача-то очень проста:

ТС уже знает про этот вариант.
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