Python 无法复制列表

Python 无法复制列表,python,type-conversion,sniffing,scapy,Python,Type Conversion,Sniffing,Scapy,我正在使用Scapy的sniff()函数来嗅探来自以太网的数据包。我将其存储在一个名为pkt的变量中。稍后,我想通过在另一个变量buffpkt中附加pkt的内容来复制它。最初我将这两个变量声明为list,但一旦pkt存储sniff()输出,它就会将其类型更改为instance。下面是代码 pkt=[] buffpkt=[] pkt=sniff(prn=lambda x:x.sprintf("{IP : %IP.src% %IP.dst%\n\n} "),timeout=5,store=1) b

我正在使用Scapy的sniff()函数来嗅探来自以太网的数据包。我将其存储在一个名为pkt的变量中。稍后,我想通过在另一个变量buffpkt中附加pkt的内容来复制它。最初我将这两个变量声明为list,但一旦pkt存储sniff()输出,它就会将其类型更改为instance。下面是代码

pkt=[]
buffpkt=[]
pkt=sniff(prn=lambda x:x.sprintf("{IP : %IP.src%  %IP.dst%\n\n} "),timeout=5,store=1)
buffpkt=pkt

我想通过将结果附加到buffpkt来列出嗅探到的所有数据包,但我做不到。有什么建议吗?

只需将一个列表分配给另一个列表,就可以使第一个列表指向第二个列表。要复制列表,可以使用切片操作符,如下所示:

buffpkt = pkt[:]

现在
buffpkt
将是一个副本。

使用标准库
copy
复制Python中的数据结构:

但这有助于我附加新结果吗?@sHoM
sniff
的返回值实际上不是一个列表,而是一个实现类似列表的访问的自定义对象(使用
\uu getitem\uuu
函数)。这就是为什么类型是
instance
。我们都喜欢Python的可读性。让我们明白,让我们一字不差,让我们在复制东西时使用
copy