在每个其他列表项Python上使用map

Las*_*nic 4 python list python-2.7

假设我想将列表中的每个其他整数乘以2.

list = [1,2,3,4]
double = lambda x: x * 2
print map(double, list[::2])
Run Code Online (Sandbox Code Playgroud)

我得到了所有其他项目的切片.

如果我想要破坏性地更改列表中的所有其他项目,那么我会返回列表[1, 4, 3, 8]而该怎么办?

wim*_*wim 6

您可以分配给切片:

>>> list_ = [1,2,3,4]
>>> double = (2).__mul__
>>> map(double, list_[1::2])
[4, 8]
>>> list_[1::2] = map(double, list_[1::2])
>>> list_
[1, 4, 3, 8]
Run Code Online (Sandbox Code Playgroud)