Python 使用lambda筛选字符串列表

Python 使用lambda筛选字符串列表,python,python-3.x,list,lambda,Python,Python 3.x,List,Lambda,我有一张这样的清单 old_list=["a_apple","b_banana","c_cherry"] 我想使用lambda获取新列表 new_list=["apple","banana","cherry"] 我试过了,但没有达到预期效果。这是我写的 new_list=filter(lambda x: x.split("_")[1], old_list) 有什么问题吗?使用 输出: ['apple', 'banana', 'cherry'] 使用 输出: ['apple', 'bana

我有一张这样的清单

old_list=["a_apple","b_banana","c_cherry"]
我想使用lambda获取新列表

new_list=["apple","banana","cherry"]
我试过了,但没有达到预期效果。这是我写的

new_list=filter(lambda x: x.split("_")[1], old_list)
有什么问题吗?

使用

输出:

['apple', 'banana', 'cherry']
使用

输出:

['apple', 'banana', 'cherry']
试试这个:

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']
In [4]: new_list = list(map(lambda x: x.split("_")[1], old_list))

In [5]: new_list
Out[5]: ['apple', 'banana', 'cherry']
Python-3

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']
In [4]: new_list = list(map(lambda x: x.split("_")[1], old_list))

In [5]: new_list
Out[5]: ['apple', 'banana', 'cherry']
试试这个:

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']
In [4]: new_list = list(map(lambda x: x.split("_")[1], old_list))

In [5]: new_list
Out[5]: ['apple', 'banana', 'cherry']
Python-3

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']
In [4]: new_list = list(map(lambda x: x.split("_")[1], old_list))

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

您可以使用
lambda
函数
map
映射列表:

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

['apple', 'banana', 'cherry']

您可以使用
lambda
函数
map
映射列表:

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

['apple', 'banana', 'cherry']

通过使用lambda和map:

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

new_li = map(lambda x: x.split('_')[1], li)
print (list(new_li))
# ['apple', 'banana', 'cherry']

通过使用lambda和map:

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

new_li = map(lambda x: x.split('_')[1], li)
print (list(new_li))
# ['apple', 'banana', 'cherry']

尝试使用map而不是filterTry使用map而不是filter