Bir Listenin İçindeki Harfleri Nasıl Ayırabilirim?

0

Soru

Elimde bu kod parçası var.

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)

sıkıştığım şey, tüm harfleri birlikte yazdırmak yerine bir listenin içindeki harfleri nasıl ayıracağımdı. Denedim solve = (solve.split(",") for sep in solve) ama bu bana bir hata veriyor. tam olarak yapacağım şey bir ord() her harfin değeri ve 4'ü çıkarın, ardından str'ye geri döndürün chr()

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

En iyi cevabı

1

Bir liste anlama kullanabilirsiniz:

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']

Sadece orijinal kodunuzu kullanmak istiyorsanız, o zaman sadece list(solve) karakterlerin listesini yapacak. Ancak, başınızın başında (belki de istenmeyen) bir boşluk olduğunu unutmayın. solve bu, başlattığınız için olur solve ile " ", değil "".


Dizeyi almak için karakterlerin her tamsayı gösteriminden (soruda açıkladığınız gibi) 4 çıkarmak istiyorsanız, o zaman

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]

sana kestirme bir yol sağlar.

2021-11-24 04:25:02

İyi çalıştı, teşekkürler efendim.
iis2h
0

Aşağıdaki gibi dize yerine doğrudan list kullanabilirsiniz:

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']

Solve'u aşağıdaki gibi bir dizeye dönüştürebilirsiniz:

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

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................