Replace None value in list?
You can simply use map
and convert all items to strings using the str
function:
map(str, d)
#['1', 'q', '3', 'None', 'temp']
If you only want to convert the None
values, you can do:
[str(di) if di is None else di for di in d]
Using a lengthy and inefficient however beginner friendly for loop it would look like:
d = [1,'q','3', None, 'temp']
e = []
for i in d:
if i is None: #if i == None is also valid but slower and not recommended by PEP8
e.append("None")
else:
e.append(i)
d = e
print d
#[1, 'q', '3', 'None', 'temp']
Only for beginners, @Martins answer is more suitable in means of power and efficiency
Use a simple list comprehension:
['None' if v is None else v for v in d]
Demo:
>>> d = [1,'q','3', None, 'temp']
>>> ['None' if v is None else v for v in d]
[1, 'q', '3', 'None', 'temp']
Note the is None
test to match the None
singleton.
Starting Python 3.6 you can do it in shorter form:
d = [f'{e}' for e in d]
hope this helps to someone since, I was having this issue just a while ago.