从 lambda 分配给 Python 列表的一部分
Posted
技术标签:
【中文标题】从 lambda 分配给 Python 列表的一部分【英文标题】:Assign to a slice of a Python list from a lambda 【发布时间】:2011-06-30 22:57:21 【问题描述】:我知道各种对象的某些“特殊”方法表示通常使用运算符执行的操作(例如,int.__add__
表示 +,object.__eq__
表示 == 等),其中之一是list.__setitem
,可以给列表元素赋值。但是,我需要一个可以将列表分配到另一个列表的切片的函数。
基本上,我正在寻找与some_list[2:4] = [2, 3]
等效的表达式。
【问题讨论】:
【参考方案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 填充。
【讨论】:
以上是关于从 lambda 分配给 Python 列表的一部分的主要内容,如果未能解决你的问题,请参考以下文章
从.txt文件复制文本并将其分配给Python中的变量[重复]
如何从分配给 KivyMD Python 中的 MDLists 的 TextFields 获取数据
Python面试必考重点之列表,元组和字典第十二关——如果列表元素是字典序列,如何利用lambda表达式对列表进行升序降序排列