python常用模組介紹之二 copy模組

2021-07-23 06:26:23 字數 2490 閱讀 4529



簡介

:

copy

模組主要用於複製物件,有淺

copy

和深copy

之分。首先得清楚的理解《物件》的概念

物件:

python

萬物皆是物件。

物件分為可變和不可變

2類,可變物件如:

list,dict

等;不可變物件如:基礎型別,元組等。

物件有三大特性分別為:身份

(id(a))

,型別(type(a))

,值(a)

copy

物件是不可變物件時:拷貝物件和原物件的三大特性一致

物件是可變物件時:拷貝物件和原物件的三大特性一致

copy

物件是不可變物件時:拷貝物件和原物件的三大特性一致

物件是可變物件時:拷貝的物件和原物件的型別和值一致,身份不一致

具體如下:

import copy

x = 1

y = [11]

a = [x, y]

b = copy.copy(a)

print 'a[0] = %s

andb[0] = %s' % (a[0], b[0])

print 'type(a[0]) = %s

andtype(b[0]) = %s' % (type(a[0]),type(b[0]))

print 'id(a[0]) = %s

andid(b[0]) = %s' % (id(a[0]),id(b[0]))

print '*********************'

print 'a[1] = %s

andb[1] = %s' % (a[1], b[1])

print 'type(a[1]) = %s

andtype(b[1]) = %s' %(type(a[1]), type(b[1]))

print 'id(a[1]) = %s

andid(b[1]) = %s' % (id(a[1]),id(b[1]))

結果:a[0] = 1

andb[0] = 1

type(a[0]) =

andtype(b[0]) =

id(a[0]) = 31817608

andid(b[0]) = 31817608

*********************

a[1] = [11]

andb[1] = [11]

type(a[1]) =

andtype(b[1]) =

id(a[1]) = 36362440

andid(b[1]) = 36362440

通過結果發現,a和

b的三大特性完全一致。

import copy

x = 1

y = [11]

a = [x, y]

b = copy.deepcopy(a)

print 'a[0] = %s

andb[0] = %s' % (a[0], b[0])

print 'type(a[0]) = %s

andtype(b[0]) = %s' %(type(a[0]), type(b[0]))

print 'id(a[0]) = %s

andid(b[0]) = %s' % (id(a[0]),id(b[0]))

print '*********************'

print 'a[1] = %s

andb[1] = %s' % (a[1], b[1])

print 'type(a[1]) = %s

andtype(b[1]) = %s' %(type(a[1]), type(b[1]))

print 'id(a[1]) = %s

andid(b[1]) = %s' % (id(a[1]),id(b[1]))

結果:a[0] = 1

andb[0] = 1

type(a[0]) =

andtype(b[0]) =

id(a[0]) = 31555464

andid(b[0]) = 31555464

*********************

a[1] = [11]

andb[1] = [11]

type(a[1]) =

andtype(b[1]) =

id(a[1]) = 36624584

andid(b[1]) =

36635656

通過結果發現,

a[0]

和b[0]

的三大特性完全一致,

a[1]

和b[1]

的型別和值一致,身份不一致。

Python常用模組之二 Queue

python中,佇列是執行緒間最常用的交換資料的形式。queue模組是提供佇列操作的模組,雖然簡單易用,但是不小心的話,還是會出現一些意外。queue佇列的原則時 先進先出,後進後出 常用方法 q.put q.get q.maxsize q.qsize 返回佇列的大小 q.empty 如果隊列為空,...

python常用模組介紹(二)

前言 一 第三方模組 二 常用模組之time 總結上一回我聊了一下關於什麼是模組,為什麼使用模組,模組的分類以及如何匯入模組。那麼今天我想聊一下常用的模組 但是,在說常用模組之前,我想先說一下第三方模組 在python中,安裝第三方模組,是通過setuptools這個工具完成的。python有兩個封...

python常用模組介紹

import random print random.random 0,1 隨機浮點 print random.randint 1,3 1,3 包含兩邊 print random.randrange 1,3 1,3 不包含3 print random.choice 11,22,33,44,55 對可...