Python replace none in string

I have:

d = [1,'q','3', None, 'temp']

I want to replace None value to 'None' or any string

expected effect:

d = [1,'q','3', 'None', 'temp']

a try replace in string and for loop but I get error:

TypeError: expected a character buffer object

asked Oct 14, 2013 at 15:36

2

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.

answered Oct 14, 2013 at 15:36

Martijn PietersMartijn Pieters

987k274 gold badges3881 silver badges3239 bronze badges

0

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]

answered Oct 14, 2013 at 15:44

0

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.

answered Sep 29, 2017 at 12:42

UzzyUzzy

4218 silver badges15 bronze badges

2

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

answered Oct 14, 2013 at 15:42

K DawGK DawG

12.8k9 gold badges33 silver badges65 bronze badges

4

List comprehension is the right way to go, but in case, for reasons best known to you, you would rather replace it in-place rather than creating a new list [arguing the fact that python list is mutable], an alternate approach is as follows

d = [1,'q','3', None, 'temp', None]
try:
    while True:
        d[d.index[None]] = 'None'
except ValueError:
    pass

>>> d
[1, 'q', '3', 'None', 'temp', 'None']

answered Oct 14, 2013 at 15:43

AbhijitAbhijit

60.1k18 gold badges126 silver badges197 bronze badges

I did not notice any answer using lambda..

Someone who wants to use lambda....[Look into comments for explanation.]

#INPUT DATA
d =[1,'q','3', None, 'temp']

#LAMBDA TO BE APPLIED
convertItem = lambda i : i or 'None' 

#APPLY LAMBDA
res = [convertItem[i] for i in d]

#PRINT OUT TO TEST
print[res]

answered Jun 29, 2020 at 3:34

Pavan ChandakaPavan Chandaka

10.8k5 gold badges24 silver badges32 bronze badges

My solution was to match for None and replace it.

def fixlist[l: list]:
    for i, v in enumerate[l]:
        if v is None:
            l[i] = 0

answered Jul 17 at 10:55

0

How do you replace a None value in Python?

Use a list comprehension to replace None values in a list in Python, e.g. new_list_1 = ['' if i is None else i for i in my_list] . The list comprehension should return a different value, e.g. an empty string or 0 if the list item is None , otherwise it should return the list item.

How do you change None to string?

Use str[] to convert a None object to a string.
an_object = None..
an_object_string = str[an_object].
print[an_object_string].

How do you remove None from a string in Python?

The easiest way to remove none from list in Python is by using the list filter[] method. The list filter[] method takes two parameters as function and iterator. To remove none values from the list we provide none as the function to filter[] method and the list which contains none values.

How do you replace None in pandas?

Use DataFrame. fillna or Series. fillna which will help in replacing the Python object None, not the string 'None'.

Chủ Đề