В настоящее время работает над проблемой транспонирования. То, что я до сих пор является то, что пользователь вводит сообщение и что сообщение зашифровано в список, как показано ниже:Сортировка списка по ключу
['BC', 'DE', 'DE', 'DA', 'FD', 'DD', 'BE', 'FE', 'DA', 'EA', 'FE', 'BC']
То, что я на следующей стадии шифра ставит это в таблицу с ключом введенный пользователем. Таким образом, если пользователь вводит «CODE» он выводит это:
2: Enter the keyword for final encryption: code
C O D E
['B', 'C', 'D', 'E']
['D', 'E', 'D', 'A']
['F', 'D', 'D', 'D']
['B', 'E', 'F', 'E']
['D', 'A', 'E', 'A']
['F', 'E', 'B', 'C']
На следующем этапе принимать каждое значение каждого столбца и напечатать значения, соответствующие его алфавитного колонок. Так что мой ожидаемый результат будет:
C D E O
['B', 'D', 'E', 'C']
['D', 'D', 'A', 'E']
['F', 'D', 'D', 'D']
['B', 'F', 'E', 'E']
['D', 'E', 'A', 'A']
['F', 'B', 'C', 'E']
Проблема у меня пытается узнать, как поместить каждое из значений в их соответствующем столбце и их печати.
Вот что я до сих пор:
def encodeFinalCipher():
matrix2 = []
# Convert keyword to upper case
key = list(keyword.upper())
# Convert firstEncryption to a string
firstEncryptionString = ''.join(str(x) for x in firstEncryption)
# Print the first table that will show the firstEncryption and the keyword above it
keywordList = list(firstEncryptionString)
for x in range(0,len(keywordList),len(keyword)):
matrix2.append(list(keywordList[x:x+len(keyword)]))
# Print the un-ordered matrix to the screen
print (' %s' % ' '.join(map(str, key)))
for letters in matrix2:
print (letters)
unOrderedMatrix = [[matrix2[i][j] for i in range(len(matrix2))] for j in range(len(matrix2[0]))]
for index, item in enumerate (unOrderedMatrix):
print("\n",index, item)
index = sorted(key)
print(index)
Я получаю вывод отсортированного ключа:
['A', 'K', 'M', 'R']
То, что я хотел бы знать, как может этот отсортированный ключ применяется к значения, которые они представляют? Я знаю, что могу получить первую колонку, выполнив следующие действия:
print(unOrderedMatrix[0])
Что получает список первых столбцов.
Любая помощь будет высоко оценена. Полный новичок на Python
Так что вы ожидаете выход как '[[C, D, E, O], [B, C, D, E], [A, D, E, E], [D, D, D, F] .... 'Потому что вы сказали в алфавитном порядке? –
Я пытаюсь вывести значения, соответствующие «C», затем «D» и т. Д. Как и вторая матрица – Bellos