python map 迭代一个列表并在另一个列表上运行函数

问题描述 投票:0回答:1

Python中的map函数是如何用于迭代一个列表(可迭代)并在另一个列表(可迭代)上执行逻辑的。例如,我们有一个索引列表作为

indices
和一个字符串列表作为
str_list
。然后,我们想让从
i
indices
中取出的索引
str_list
处的元素为空。是的,索引保证在
str_list
长度范围内。有一些简单的方法可以做到,但是,我想弄清楚映射函数如何在两个单独的列表场景中工作。我想出的这个有错误:

  str_list = map(lambda index : str_list[index] = "", indices)

  SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
python python-3.x list mapreduce
1个回答
1
投票

Lambda 函数只能包含单个表达式。使用

=
运算符进行赋值是一个语句,因此它在您的示例中不起作用。

您可以使用

list.__setitem__
完成作业,但是:

>>> strings = ['zero', 'one', 'two', 'three']
>>> indices = [1, 3]
>>> list(map(lambda x: strings.__setitem__(x, ''), indices))
[None, None]
>>> list(strings)
['zero', '', 'two', '']

这是对

map
的滥用,所以我建议不要真正这样做。

© www.soinside.com 2019 - 2024. All rights reserved.