Как разделить буквы внутри списка?

0

Вопрос

У меня есть этот фрагмент кода

First = "152 162 152 145 162 167 150 172 153 162 145 170 141 16"
First = list(First.split())
solve = " "
for i in First:
    solve += chr(int(i, base=8))
print(solve)

то, что я застрял, - это то, как разделять буквы внутри списка, а не печатать все буквы вместе. Я пытался solve = (solve.split(",") for sep in solve) но это дает мне ошибку. что я точно сделаю, так это приму ord() значение каждой буквы и вычтите 4, затем верните его в str по chr()

cryptography list python
2021-11-24 04:14:09
2

Лучший ответ

1

Вы можете использовать понимание списка:

data = "152 162 152 145 162 167 150 172 153 162 145 170 141 16"
output = [chr(int(x, base=8)) for x in data.split()]
print(output) # ['j', 'r', 'j', 'e', 'r', 'w', 'h', 'z', 'k', 'r', 'e', 'x', 'a', '\x0e']

Если вы просто хотите использовать свой исходный код, то просто list(solve) составим список персонажей. Но обратите внимание, что в начале вашего solve; это происходит потому, что вы инициировали solve с " ", не "".


Если вы хотите вычесть 4 из каждого целочисленного представления символов (как вы объяснили в вопросе), чтобы получить строку, то

data = "152 162 152 145 162 167 150 172 153 162 145 170 141 16"
output = ''.join(chr(int(x, base=8) - 4) for x in data.split())
print(output) # fnfansdvgnat]

это дало бы вам короткий путь.

2021-11-24 04:25:02

Сработало хорошо, спасибо, сэр.
iis2h
0

Вы можете использовать список напрямую вместо строки следующим образом:

First = "152 162 152 145 162 167 150 172 153 162 145 170 141 16"
First = list(First.split())
solve = []
for i in First:
    solve.append( chr(int(i, base=8)))
print(solve)

Output: ['j', 'r', 'j', 'e', 'r', 'w', 'h', 'z', 'k', 'r', 'e', 'x', 'a', '\x0e']

Вы можете преобразовать решение в строку, как показано ниже:

''.join(solve)
2021-11-24 04:19:04

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................