我有一个类似的列表,
old_list=["a_apple","b_banana","c_cherry"]
,我想使用 lambda 获得新列表。
new_list=["apple","banana","cherry"]
我尝试过,但是没有按预期工作。这是我写的。
new_list=filter(lambda x: x.split("_")[1], old_list)
出什么问题了?
答案 0 :(得分:2)
尝试一下:
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']
答案 1 :(得分:1)
lst=["a_apple","b_banana","c_cherry"]
[i.split("_")[1] for i in lst]
输出:
['apple', 'banana', 'cherry']
答案 2 :(得分:1)
您可以使用map
函数来lambda
列表:
list(map(lambda s: s.split('_')[1], old_list))
这将返回:
['apple', 'banana', 'cherry']
答案 3 :(得分:0)
使用lambda和地图:
li=["a_apple","b_banana","c_cherry"]
new_li = map(lambda x: x.split('_')[1], li)
print (list(new_li))
# ['apple', 'banana', 'cherry']