从 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中的变量[重复]

将字符串重新分配给数组中的一组值列表

Python的lambda表达式

如何从分配给 KivyMD Python 中的 MDLists 的 TextFields 获取数据

Python面试必考重点之列表,元组和字典第十二关——如果列表元素是字典序列,如何利用lambda表达式对列表进行升序降序排列

Python,将列表的最后三个元素分配给各个变量