我正在Python 3.6中尝试使用map
,filter
和reduce
。我想要做的是,给定一个字典列表,将与某个键关联的所有值更改为小写值。例如:如何使用映射到字典中的小写字符串?
message_one = {"content": "I'm glad I know sign language, it's pretty handy."}
message_two = {"content": "I am on a seafood diet. Every time I see food, I eat it."}
message_three = {"content": "Labyrinths are amazing."}
messages = [message_one , message_two , message_three]
print(to_lowercase(tweets))
#to_lowercase should just return the a list of dictionaries, but content lower-cased.
我尝试使用地图在第一。
def to_lowercase(messages):
lower_case = map(lambda x: x["content"].lower(), messages)
return lower_case
不过,这似乎只是一个列表中返回的所有内容消息的列表,并没有持之以恒的字典格式。 我不认为reduce
在这种情况下是合适的,因为我不想在最后返回一个值,并且filter
在这里似乎也没有意义。
我如何使用map
,reduce
或filter
来完成这项工作?
不,'reduce()'和'filter()'在这里不是正确的工具。他们会做很不同的事情。 'filter()'用于*从列表中选择元素*,'reduce()'用于产生累加。就像一个总数或者一个列表或者任何其他需要中间结果用序列中的下一个元素进行更新的东西。这些不是你正在寻找的工具。 –
字典中是否还有其他密钥需要保存?正在更新字典*是否可以接受,还是必须制作副本? –
是否要更改现有字典中的值,或者是否要使用小写值返回* new *字典? – BrenBarn