python列表元素赋值_如何在python中的列表列表的所有元素上执行“一行”赋值

我不会改变你自己的方法,而是回答你的问题:

lol = [[1,3],[3,4]]

from operator import setitem

map(lambda x: setitem(x, 1, -2), lol)

print(lol)

[[1, -2], [3, -2]]

它完成了任务,但你基本上使用map副作用并创建None的列表:

In [1]: lol = [[1, 3], [3, 4]]

In [2]: from operator import setitem

In [3]: map(lambda x: setitem(x, 1, -2), lol)

Out[3]: [None, None]

In [4]: lol

Out[4]: [[1, -2], [3, -2]]

所以真的坚持自己的循环逻辑.

它们简单的循环也更高效:

In [13]: %%timeit

lol = [[1,2,3,4,5,6,7,8] for _ in range(100000)]

map(lambda x: setitem(x, 1, -2), lol)

....:

10 loops, best of 3: 45.4 ms per loop

In [14]:

In [14]: %%timeit

lol = [[1,2,3,4,5,6,7,8] for _ in range(100000)]

for sub in lol:

sub[1] = -2

....:

10 loops, best of 3: 31.7 ms per

唯一的时间图.如果您可以使用内置函数或方法(即map(str.strip,iterable))调用它们,那么一旦包含lambda,性能通常会受到很大影响.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值