фильтрация списка строк с использованием лямбды - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть список типа

old_list=["a_apple","b_banana","c_cherry"]

, и я хочу получить новый список, используя лямбда .

new_list=["apple","banana","cherry"]

Я пытался, но это не такработать как я ожидал.вот что я написал.

new_list=filter(lambda x: x.split("_")[1], old_list)

в чем проблема?

Ответы [ 4 ]

0 голосов
/ 29 ноября 2018

Используя лямбду и карту:

li=["a_apple","b_banana","c_cherry"]

new_li = map(lambda x: x.split('_')[1], li)
print (list(new_li))
# ['apple', 'banana', 'cherry']
0 голосов
/ 29 ноября 2018

Попробуйте:

Python-2 :

In [978]: old_list=["a_apple","b_banana","c_cherry"]

In [980]: new_list = map(lambda x: x.split("_")[1], old_list)

In [981]: new_list
Out[981]: ['apple', 'banana', 'cherry']

Python-3 :

In [4]: new_list = list(map(lambda x: x.split("_")[1], old_list))

In [5]: new_list
Out[5]: ['apple', 'banana', 'cherry']
0 голосов
/ 29 ноября 2018

Вы можете map список с функцией lambda:

list(map(lambda s: s.split('_')[1], old_list))

Возвращает:

['apple', 'banana', 'cherry']
0 голосов
/ 29 ноября 2018

Использование списочных представлений

lst=["a_apple","b_banana","c_cherry"]
[i.split("_")[1] for i in lst]

Вывод:

['apple', 'banana', 'cherry']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...