2016-04-14 4 views
0

У меня есть список строк, и я использую шифрование AES для шифрования каждой из строк и хранения их в другом списке.Доступ к отдельным элементам зашифрованного списка в python

Когда я печатаю весь список, все зашифрованные строки можно увидеть. Но при попытке доступа к отдельным строкам вывод отличается. Чем это вызвано?

Вот код

from Crypto.Cipher import AES 

keywords = ['country', 'state', 'nation', 'area'] 
i = 0 
encryptlist = [] 

while i < len(keywords): 
    obj = AES.new('samplekey1234567',AES.MODE_CFB,'sampleiv12345678') 
    encryptlist.append(obj.encrypt(keywords[i])) 
    i = i+1 

print encryptlist 
print encryptlist[0] 

Это то, что результат выглядит

['&\x8cj\xbay\x93\xb9', '65\xfe\xf9s', '+\n\xe1\xa8\xdd~', '$tI\xc7'] 

&Œjºy“¹ 

ответ

1

print в списке вызывает __repr__ каждого элемента, в то время как print на строку вызывает __str__

>>> '&\x8cj\xbay\x93\xb9'.__str__() 
&îj║yô╣ 

>>> '&\x8cj\xbay\x93\xb9'.__repr__() 
'&\x8cj\xbay\x93\xb9' 

так:

>>> print '&\x8cj\xbay\x93\xb9' 
&îj║yô╣ 

в то время как

>>> print ['&\x8cj\xbay\x93\xb9'] 
['&\x8cj\xbay\x93\xb9] 
+0

Лучше ответ, чем у меня, так что я взял его :) – Bahrom

+0

Великий ответ. Я этого никогда не знал. Я все еще новичок в python. Спасибо, это действительно помогло ... – sanjay

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