[英]How to replace part of the values in the list using the values from the dictionary?
以下方法只能替換一個值:
my_list = ['apple', 'pear', 'grape', 'banana', 'kiwi', 'plum']
my_list = list(map(lambda x: x.replace('apple','strawberry'), my_list))
print(my_list)
['strawberry', 'pear', 'grape', 'banana', 'kiwi', 'plum']
我想嘗試添加字典而不是一對值(“舊”,“新”):
my_list = list(map(lambda x: x.replace({'apple':'strawberry', 'banana':'raspberry'}), my_list))
但是出現錯誤信息:“replace() takes at least 2 arguments (1 given)”
你可以這樣做,
d = {"apple": "strawberry", "banana": "raspberry"}
out = list(map(lambda x: d.get(x, x), my_list))
# Output
# ['strawberry', 'pear', 'grape', 'raspberry', 'kiwi', 'plum']
由於 replace 正在返回一個字符串,您可以再次調用它,試試這個:
my_list = ['apple', 'pear', 'grape', 'banana', 'kiwi', 'plum']
my_list = list(map(lambda x: x.replace('apple','strawberry').replace("banana", "raspberry"), my_list))
print(my_list)
如果你有很多鍵值對,你可能想使用functools.reduce
from functools import reduce
replacements = ('apple','strawberry'), ("banana", "raspberry")
my_list = [reduce(lambda a, kv: a.replace(*kv), replacements, x) for x in my_list]
print(my_list)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.