Convert each element of a list to sha256

I would like to know how to convert each element of a list to sha256 and get the values inside another list. The data I’m using is:

lst=['Under.csv', 'Upper.csv', 'Below.csv', 'Outside.csv', 'Inside.csv', 'Out.csv', 'in.xlsx', 'water.xlsx', 'sun.xlsx']

I’m triying to use list comprehesion:

lst1=[hashlib.sha256(b"i").hexdigest().upper() for i in lst]

But I’m just getting the first sha256 of the first element repeated.


lst2=[hashlib.sha256("{}".format(b'i')).hexdigest().upper() for i in lst]

And with this other one I get an error:

AttributeError: 'bytes' object has no attribute 'format'

How can I solve this issue and get the sha256 of each element inside another list in the same order as the stings in lst?.

The output of lst1 is:

['DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7', 'DE7D1B721A1E0632B7CF04EDF5032C8ECFFA9F9A08492152B926F1A5A7E765D7']

As I said I just get the first value repeated.


You get the same value because you use the same string inside the hashlib.sha256() function. You need to pass i as variable. Try passing the variable correctly and encoding it


lst1=[hashlib.sha256(i.encode()).hexdigest().upper() for i in lst]