【问题标题】:Assign to a slice of a Python list from a lambda从 lambda 分配给 Python 列表的一部分
【发布时间】:2011-06-30 22:57:21
【问题描述】:

我知道各种对象的某些“特殊”方法表示通常使用运算符执行的操作(例如,int.__add__ 表示 +,object.__eq__ 表示 == 等),其中之一是list.__setitem,可以给列表元素赋值。但是,我需要一个可以将列表分配到另一个列表的切片的函数。

基本上,我正在寻找与some_list[2:4] = [2, 3] 等效的表达式。

【问题讨论】:

    标签: python list lambda variable-assignment


    【解决方案1】:

    线

    some_list[2:4] = [2, 3]
    

    还将调用list.__setitem__()。不过,它将传递一个slice 对象,而不是一个索引。该行相当于

    some_list.__setitem__(slice(2, 4), [2, 3])
    

    【讨论】:

    • 非常感谢。我不知道有一个特殊的slice 对象。
    • 还有operator.setitem(some_list, slice(2,4), [2, 3])
    【解决方案2】:

    这取决于 Python 的版本。对于 3.2,__setitem__ 完成了这项工作:

    注意切片仅通过以下三种方法完成。像这样的电话 a[1:2] = b 被翻译成 a[切片(1, 2, 无)] = b 等等。缺少的切片项目总是用 None 填充。

    【讨论】:

      猜你喜欢
      • 2017-07-11
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2022-12-05
      相关资源
      最近更新 更多