色合いのPythonのコピーセット

1.設定された設定、繰り返さない、無秩序
2.コピー深さ
1.直接割り当て、2つの変数が同じオブジェクトを参照。
2.浅いコピー:第1のコンテンツ層コピー(のみコピー)
3.ディープコピー:オブジェクトすべてのコンテンツがコピーされます
インポートコピー
(copy.deepcopy)


#重複排除
= LST [1,2,4,7,2,5,3,5,6,7,3 ] 
RET = SET(LST)
 プリント(RET)
出力:{1、2、3、4、5、6 、7} 

(ret.add 1)    添加するコレクションではなく、重複追加しない
プリント(RET)
出力:{1、2、3、4、5、6、7} 

タイプリスト内になる 
LST = リスト(RET)
 プリント(LST)
出力:[1、2、3、4、5、6、7]

 

#1。直接割り当て、二つの変数が同じオブジェクトを指し
LST = [ ' 言語'' 数学'' 英語'' 地理'' 化学' ] 
LST1 = LST 
lst1.append(' 物理'そのうちの一つのは、一緒に両方の変更動作
印刷(LST1 、LST)
 #1 出力:[ '言語'、 '数学'、 '英語'、 '地理学'、 '化学'、 '物理的な'] ['言語'、 '数学、 '英語'、 '地理学'、'化学'']」物理
プリント(ID(LST)、ID(LST1))
出力(例):1729821762184の1729821762184#アドレスが同じ、説明されています。二つの変数が同じオブジェクトを指し

 

#2。シャローコピー:ちょうど第一層のコピーの内容をコピー()、新しいオブジェクトを作成します
= LST1 [ ' 中国'' アメリカ'' ロシア'' フランス'' イギリス'、[ ' 5常任理事'' およびその他の国' ]] 
LST2 = lst1.copy()      LST1とないLST2対象 
lst1.append(' インド' を印刷(LST1、LST2)
 #1 出力:[ '中国'、 'アメリカ'、 'ロシア'、 'フランス'、 'イギリス'、[ '5人の常任理事、' 'だけでなく、他の国「]」インド「] 
#1        [」中国「」アメリカ「」ロシア「」フランス「」イギリス「[」5人の常任理事、 『』だけでなく、他の国]] 

を印刷(ID(LST1)、ID(LST2))
出力(例):2822165258952の2822165761352#アドレス記載されているように2つの変数が同じオブジェクトでない

[LST1の 5] .append(' インドネシア' プリント(LST1)     ちょうど第一層、第2層の内容をコピーしたりして、それに追加したこと
を印刷(LST2)
出力:[「中国」、「アメリカ」、「ロシア」、「フランス」、 '英国の5人の常任理事を、['国、「」だけでなく、他の国、 『インドネシア』]]        [ 『中国』、 『アメリカ』、 『ロシア』、 『フランス』、 『イギリス』、[ 『5人の常任理事、』 'だけでなく、他の国の、 'インドネシア']] 


LST2 = LST1 [:]#セクションは、新しいオブジェクトを生成します、 
LST1 = [ ' 中国'' アメリカ'ロシアフランス' イギリス'、[ ' 5常任理事'' およびその他の国' ]] 
LST2 = LST1 [:] 
lst2.append(' オーストラリア' 印刷(LST2)
 印刷(LST1)
出力:[ '中国'、 '米国「」ロシア「」フランス「」イギリス「[」5人の常任理事、 『』およびその他の国『]』オーストラリア『]        [』中国「」アメリカ「」ロシア「」フランス「」イギリス「[」5人の常任理事、 『』だけでなく、他の国]] 

印刷(上記ID(LST1を述べた)、上記ID(LST2)言及した)
 #1 出力(例):1831290561224の1831320161672#アドレスは私のために同じではありません浅いコピー対応

LST2の[する。5]。APPEND( ' オーストラリア' 印刷(LST2)
印刷(LST1)
出力:[ '中国'、 'アメリカ'、 'ロシア'、 'フランス'、 'イギリス'、[ '5人の常任理事、' 'だけでなく、他の国'、」オーストラリア']] 
#1        ['中国「」アメリカ「」ロシア「」フランス「」イギリス「[」5人の常任理事、 『』だけでなく、他の国、 『オーストラリア』]]

 

#3ディープコピー:すべてのコンテンツは、オブジェクトのコピーとなります
インポートコピー

LST1 = [ ' トランスフォーマー'' ジュラシックパーク世紀'' ヒップホップ'' 学生'、[ ' 先生'' 教授' ]] 
LST2 = copy.deepcopy(LST1)    LST1が深さでスロー内部コピーを含むすべてのコンテンツ、コピー

LST1を[ 4] .append(' 教師' を印刷(LST1、LST2)
 #1 出力:[ 'トランスフォーマー'、 'ジュラシック・パークの世紀'、 'ヒップホップ'、「学生、[ '先生'、 '教授'、 '先生']] 
#1        [ 'トランスフォーマー、 『ジュラシック・パークセンチュリー』、 『ヒップホップ』、 『学生』、[ 『先生』、 『教授』]] 
を印刷(ID(LST1)、ID(LST2))
出力(例):1813244593736 1813274316552

 

1。なぜコピーの深さを持っている?コピーは、オブジェクトを作成するプロセスよりも高速であるため、

 

おすすめ

転載: www.cnblogs.com/Pengdachui-1/p/10995635.html