2015-04-27 3 views
0

Я преобразовал каждый символ в сообщение в его код ASCII, и мне нужно его зашифровать, однако, если это пространство, оно не должно быть зашифровано.Как не шифровать символ, если это пробел?

s =[ord(c) for c in lst] #Converts each character into ascii 
    print (s) #remove line when finished 
+1

Это не шифрование. Кодирование, да. –

ответ

4

Следующая:

lst = "asd asd" 
s =[ord(c) if c != ' ' else c for c in lst ] 
print (s) 

печатает [97, 115, 100, ' ', 97, 115, 100].

Если вы хотите полностью пропустить пробелы, следующие:

lst = "asd asd" 
s =[ord(c) for c in lst if c != ' '] 
print (s) 

гравюр [97, 115, 100, 97, 115, 100]

+1

Вы также можете использовать isspace 's = [c, если c.isspace() else ord (c) для c в lst]' –

0

Попробуйте эту

s = "abc def" 
print[ord(ch) for ch in s if ord(ch) != 32] 
-1

Если вы хотите, чтобы полностью удалить пробелы (пробелы, табуляцию и т. д.):

s = 'asdf asdf' 
s = ''.join(s.split()) 
print map(ord, s) 
# OUT: [97, 115, 100, 102, 97, 115, 100, 102] 

Если вы хотите сохранить как пространства использовать тройной оператор в список вашего понимания:

s = 'asdf asdf' 
print [' ' if i == ' ' else ord(i) for i in s] 
+0

Может ли нижний избиратель объяснить, что не так с моим ответом? Я бы с удовольствием отредактировал его, чтобы соответствовать рекомендациям SO. – pzp

Смежные вопросы