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.