0 / 0 / 0
Регистрация: 08.10.2020
Сообщений: 3
1

Запись строки в матрицу на питоне

08.10.2020, 21:34. Показов 13407. Ответов 1

Author24 — интернет-сервис помощи студентам
Не нашел тему на форуме, поэтому пишу новую. Есть строка К: "абвгдежзийклмнопрстуфхцчшщъыьэюя.,-_", надо записать её в матрицу 6х6 и вывести, мой вариант не работает (во все строки записывает последние 6 символов), помогите исправить:
Python
1
2
3
4
5
6
a=0
for i in range(6):
    for j in range(6):
        A[i][j]=K[a]
        a+=1
print(K)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2020, 21:34
Ответы с готовыми решениями:

Запись строки по буквам в матрицу
У меня есть строка с определенным количеством символов, мне нужно эту строку превратить в матрицу...

Как заполнить матрицу нужными элементами на питоне?
4. Дана квадратная матрица размера N. Заполнить матрицу в заштрихованой области единицами, в не...

Быстрая запись большого колличества данных на питоне
Есть формиловалка ods документа через ooolib. Есть у нас 500 к элементов. Допустим одинаковых...

Строки в питоне
1)Определить длину самого короткого слова в предложении 2)Определить все слова в строке, которые...

1
260 / 165 / 54
Регистрация: 03.05.2019
Сообщений: 339
08.10.2020, 22:48 2
Лучший ответ Сообщение было отмечено OTM как решение

Решение

Если вы делали матрицу так
Python
1
A = [[0] * 6] * 6
то все подмассивы являются одним объектом - изменение одного влечёт за собой другие. Попробуйте через индекс изменить значение первого елемента первого списка и выведите.
Как этого избежать? Не определять матрицу завременно, а добавлять постепенно в цикле (Есть ещё numpy-массивы, но это другая история).

Можно сделать так:
Python
1
2
3
4
import math
text = "абвгдежзийклмнопрстуфхцчшщъыьэюя.,-_"
n = math.ceil((math.sqrt(len(text)))) # получение размера квадратной матрицы
data = [[char for char in text[i * n: (i + 1) * n]] for i in range(n)]
Либо же отстраниться от индексации и пользоваться итератором:
Python
1
2
3
4
5
text = 'абвгдежзийклмнопрстуфхцчшщъыьэюя.,-_'
n = math.ceil((math.sqrt(len(text)))) # получение размера квадратной матрицы
text = iter(text)
data = [[next(text) for _ in range(6)] for i in range(n)]
print(data)
Без списковых включений:
Python
1
2
3
4
for i in range(n):
    data.append([])
    for char in text[i * n: (i + 1) * n]:
        data[-1].append(char)
Цитата Сообщение от OTM Посмотреть сообщение
Не нашел тему на форуме
Ну, и я думаю, что плохо искал.
2
08.10.2020, 22:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2020, 22:48
Помогаю со студенческими работами здесь

Удаление строки из программы на питоне
Подскажите как сделать удаление в питоне для таблицы QSlite. Чтоб можно можно было нажать на кнопку...

Как открыть файл на питоне, чтобы внутри содержимый код работал при открытии на питоне?
Хочу открыть файл, чтобы внутри код работал на питоне: >>> a = open(r'F:\python\py\Madi...

Ввод переменных из одной строки в Питоне
Здравствуйте, как можно реализовать ввод нескольких переменных разного типа в 1 строке в Питоне?...

Как в питоне вводить числа с новой строки каждое
допустим,я пишу x,y,z = input().split('\n') при нажатии Enter поток ввода заканчивается,а...

Сформировать квадратную матрицу; транспонировать матрицу и инвертировать порядок элементов каждой ее строки
Заданы два одномерных массива одинаковой длины: R и S.Сформировать квадратную матрицу A, каждый...

Файлы. Добавить в матрицу столбец, содержащий суммы элементов каждой строки. Преобразованную матрицу
В текстовом файле построчно хранится вещественная матрица размером не более 5х6. Добавить в эту...

Ввести матрицу А, вычислить сумму элементов второй строки, построить матрицу B по формуле: bij = aij +1
2)Составить программу, которая: вводит с клавиатуры A в виде матрицы; вычисляет и выводит на экран...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru