我想知道如何将列表中的每个元素转换为sha256,并获取另一个列表中的值。 我使用的数据是:
lst=['Under.csv', 'Upper.csv', 'Below.csv', 'Outside.csv', 'Inside.csv', 'Out.csv', 'in.xlsx', 'water.xlsx', 'sun.xlsx']
我正在尝试使用列表压缩:
lst1=[hashlib.sha256(b"i").hexdigest().upper() for i in lst]
但我只是重复第一个元素的第一个sha256
此外:
lst2=[hashlib.sha256("{}".format(b'i')).hexdigest().upper() for i in lst]
另一个我得到一个错误:
AttributeError: 'bytes' object has no attribute 'format'
如何解决这个问题,并以与lst中的sting相同的顺序获取另一个列表中每个元素的sha256
lst1的输出为:
['DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7']
正如我所说,我只是重复了第一个值
在第一个示例中,将字符串“i”传递给函数
您应该使用如下内容:
[hashlib.sha256(i.encode()).hexdigest().upper() for i in lst]
这里传递
i
编码的值因为在
hashlib.sha256()
函数中使用了相同的字符串,所以得到了相同的值。您需要将i
作为变量传递。尝试正确传递变量并对其进行编码代码:
相关问题 更多 >
编程相关推荐