2016-04-14 59 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' 

so:

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

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

更好的答案比我的,所以我把它:) – Bahrom

+0

伟大的答案。我从来不知道这一点。我还是新来的python。谢谢,它真的帮助... – sanjay