Python: добавление одинакового префикса ко всем элементам в списке - PullRequest
0 голосов
/ 25 апреля 2019

Допустим, у меня есть следующий список Python:

['7831-0', nan, '3165-0', '7831-0', '7831-1'] 

Я хочу добавить одинаковый префикс ('ADD_' к каждому элементу в приведенном выше списке. Я также хочу удалить нан из моего списка. Мой желаемый список вывода выглядит следующим образом:

list = ['ADD_7831-0', 'ADD_3165-0', 'ADD_7831-0', 'ADD_7831-1']

Я попробовал следующий код:

prefix_ADD = 'ADD_'

new_list = [prefix_ADD + x for x in list]

Но я получаю следующую ошибку:

TypeError: must be str, not float

Ответы [ 3 ]

0 голосов
/ 25 апреля 2019

[prefix_ADD + x for x in list if not str(x) == "nan"]

Это один из способов отфильтровать nan

0 голосов
/ 25 апреля 2019

Возможно, менее изящное решение, но как насчет этого:

new_list=[]
old_list = ['7831-0', nan, '3165-0', '7831-0', '7831-1']

prefix_ADD = 'ADD_'

for x in old_list:
    if x != nan:
        new_list.append(prefix_ADD + x)

print(new_list)
# ['ADD_7831-0', 'ADD_3165-0', 'ADD_7831-0', 'ADD_7831-1']
0 голосов
/ 25 апреля 2019
your_list = ['7831-0', float('nan'), '3165-0', '7831-0', '7831-1']
print(your_list)  # ['7831-0', nan, '3165-0', '7831-0', '7831-1']
prefix_ADD = 'ADD_'
new_list = [prefix_ADD + x for x in your_list if isinstance(x, str)]
print(new_list)  # ['ADD_7831-0', 'ADD_3165-0', 'ADD_7831-0', 'ADD_7831-1']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...