Python 3.x Python:修改函数中的deque
我知道可以使用赋值修改函数内的列表,如下所示Python 3.x Python:修改函数中的deque,python-3.x,deque,Python 3.x,Deque,我知道可以使用赋值修改函数内的列表,如下所示lis[:]=new_list,但是问题是,是否可以修改函数内的deque,因为它也是可编辑的? 当然,在函数中不使用return 不能使用'deq[:]=new_deq',因为它会产生以下错误:TypeError:sequence index必须是整数,而不是'slice'deque不支持将slice作为索引,因此要使用deque实现lis[:]=new_list的效果,可以在扩展它之前先清除它: from collections import de
lis[:]=new_list
,但是问题是,是否可以修改函数内的deque,因为它也是可编辑的?
当然,在函数中不使用return
不能使用'deq[:]=new_deq',因为它会产生以下错误:
TypeError:sequence index必须是整数,而不是'slice'
deque
不支持将slice作为索引,因此要使用deque
实现lis[:]=new_list
的效果,可以在扩展它之前先清除它:
from collections import deque
def f(q, new_list):
q.clear()
q.extend(new_list)
d = deque([1, 2])
f(d, [2, 3])
print(d)
这将产生:
deque([2, 3])
我还发现可以这样做:
def f(q, new_list):
q.__init__(new_list)
这对我很有效,但我不知道这种方式是否有任何缺点。这里有问题吗?我相信这是肯定的,并且可以在几秒钟内通过交互式会话进行验证。请确保使用数据类型的操作。@BenY检查我的editsAh,这样更清楚。谢谢,看来有人已经回答了。这样效率高吗?在性能方面@blhsingYes它的效率与成本为O(n)的新列表一样高。