Skip to main content
 首页 » 编程设计

python之如何在不复制引用的情况下在 Python 中对列表进行切片

2025年05月04日11mfryf

我需要从函数内的列表中删除前 N 个元素,并且我希望修改原始列表。在 Python 中执行此操作的简洁方法是什么?

使用 slice 不起作用,因为切片操作会返回对列表的单独引用。在此示例中,我希望 pkt 在调用函数后成为 [3,4,5]。

>>>> def process_packet(packet, num_bytes): 
         # ... 
         packet = packet[num_bytes:len(packet)] 
         print packet 
 
>>> pkt = [1,2,3,4,5] 
>>> process_packet(pkt, 2) 
[3, 4, 5] 
>>> print pkt 
[1, 2, 3, 4, 5] 

请您参考如下方法:

只需使用 del 就地删除切片 :)

>>> def process_packet(packet, num_bytes): 
...     del packet[num_bytes:len(packet)] 
...  
>>> a = range(10) 
>>> process_packet(a,4) 
>>> a 
[0, 1, 2, 3]