我有一个需要清理的字符串列表。我有一种 sanitizer 它们的方法,所以我可以这样做:
new_list = map(Sanitize, old_list)
但我不需要保留旧列表。这让我想知道是否有一个就地等同于 map 。很容易为它编写一个 for 循环(或自定义就地映射方法),但是是否有内置的东西?
最佳答案
答案很简单:不。
当答案不时,“XXX 是否存在”形式的问题往往不会得到直接回答,所以我想我应该把它放在那里。
大多数 itertools 助手和内置函数都在通用迭代器上运行。 map
、filter
、列表理解、for
——它们都在迭代器上工作,而不是修改原始容器(如果有的话)。
为什么这个类别中没有任何变异函数?因为没有通用的、通用的方法来根据容器的键和值将值分配给容器。例如,基本的字典迭代器(for x in {}
)迭代键,并使用字典的结果作为 [] 的参数赋值给字典。另一方面,列表迭代值,并且赋值使用隐式索引。底层的一致性并不能提供像这样的通用函数,所以在 itertools
或内置函数中没有像这样的东西。
他们可以将其作为 list
和 dict
的方法提供,但目前他们没有提供。您只需要自己动手。
关于python - 在 python 中是否有相当于 'map' 的就地等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148375/