博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day 7 深copy和浅Copy
阅读量:5039 次
发布时间:2019-06-12

本文共 1370 字,大约阅读时间需要 4 分钟。

dict.fromkeys的用法

1
2
3
4
5
6
7
8
9
10
11
#dict.fromkeys的用法
#例子1
dic 
= 
dict
.fromkeys([
1
,
2
,
3
],[])
print
(dic)     
#{1: [], 2: [], 3: []}
dic[
2
].append(
'alex'
)   
#{1: ['alex'], 2: ['alex'], 3: ['alex']}
print
(dic)
#例子二
dic1 
= 
dict
.fromkeys([
'Q'
,
'w'
],[
'a'
,
'b'
])
print
(dic1)   
#{'Q': ['a', 'b'], 'w': ['a', 'b']}
dic1[
'w'
].append(
'd'
)
print
(dic1)   
#{'Q': ['a', 'b', 'd'], 'w': ['a', 'b', 'd']}

 浅copy和深copy

浅copy的引入:

1
2
3
4
5
6
7
8
9
10
11
12
13
引入浅copy
#只是第一层的列表变化
l1 
= 
[
1
,
2
,
3
]
l2 
= 
l1[:]
l1.append(
123
)
print
(l1)    
#[1, 2, 3, 123]
print
(l2)    
#[1, 2, 3]
#第二层列表改变
l3 
= 
[
1
,[
2
,
3
],
4
]
l4 
= 
l3[:]    
#实质上是浅copy
l3[
1
].append(
666
)
print
(l3)    
#[1, [2, 3, 666], 4]
print
(l4)    
#[1, [2, 3, 666], 4]

 浅copy:

1
2
3
4
5
6
7
#浅copy
#对于浅copy来说,第一层都是独立的内存地址,从第二层开始都是指向同一个内存地址,一变全都变。
l5 
= 
[
9
,
8
,[
7
,
6
],
5
]
l6 
= 
l5.copy()
l5[
2
].append(
888
)
print
(l5,
id
(l5),
id
(l5[
2
]))  
#[9, 8, [7, 6, 888], 5] 31820816 31820856
print
(l6,
id
(l6),
id
(l6[
2
]))  
#[9, 8, [7, 6, 888], 5] 31819336 31820856

 深copy:

1
2
3
4
5
6
7
8
#深copy
#对于深copy来说,无论多少层,在内存中,都是两个独立的内存地址。
import 
copy
l7 
= 
[
9
,
8
,[
7
,
6
],
5
]
l8 
= 
copy.deepcopy(l7)
l7[
2
].append(
888
)
print
(l7,
id
(l7),
id
(l7[
2
])) 
#[9, 8, [7, 6, 888], 5] 41955896 41955816
print
(l8,
id
(l8),
id
(l8[
2
])) 
#[9, 8, [7, 6    ], 5] 41957976 41957936

 

转载于:https://www.cnblogs.com/mengbin0546/p/8379154.html

你可能感兴趣的文章
Java 8 中如何优雅的处理集合
查看>>
[HNOI2012]永无乡 线段树合并
查看>>
Centos下源码安装git
查看>>
CF717A Festival Organization(第一类斯特林数,斐波那契数列)
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
Oracle composite index column ordering
查看>>
kaggle竞赛
查看>>
区块链入门教程
查看>>
npm常用命令
查看>>
南海区行政审批管理系统接口规范v0.3(规划)4.2.【queryExpireList】当天到期业务查询...
查看>>
[置顶] 细说Cookies
查看>>
[wp7软件]wp7~~新闻资讯,阅读软件下载大全! 集合贴~~~
查看>>
生成指定位数随机数的方法
查看>>
Essential C++学习笔记
查看>>
where,having与 group by连用的区别
查看>>
【MySQL】MySQL锁和隔离级别浅析二 之 INSERT
查看>>
Oracle T4-2 使用ILOM CLI升级Firmware
查看>>
4.14上午
查看>>
数据分析 -- 白话一下什么是决策树模型(转载)
查看>>
Java SPI机制原理和使用场景
查看>>