Python03.3.深浅拷贝

5.深浅拷贝

    Copy其实就是复制一份,也就是所谓的抄一份;

    深浅copy其实就是完全复制一份,部分复制一份的意思;

浅拷贝copy

同一代码块下:

Import copy

l1 = [1, "jason", True, (1,2,3), [22, 33]]

l2 = l1.copy()

>>>print(id(l1), id(l2))

# 2713214468360 2713214524680

>>>print(id(l1[-2]), id(l2[-2]))

# 2547618888008 2547618888008

>>>print(id(l1[-1]),id(l2[-1]))

# 2547620322952 2547620322952

==================================================================

# 不同代码块下:

l1 = [1, "jason";, True, (1, 2, 3), [22, 33]]

l2 = l1.copy()

>>>print(id(l1), id(l2))

1477183162696

>>>print(id(l1[-2]), id(l2[-2]))

1477181814032

>>>print(id(l1[-1]), id(l2[-1]))

1477183162504

对于浅copy来说,只是在内存中重新创建了开辟了一个空间存放一个新列表,但是新列表中的元素与原列表中的元素是公用的

浅copy只能拷贝一层数据

深拷贝deepcopy

同一代码块下

import copy

l1 = [1, "jason", True, (1,2,3), [22, 33]]

l2 = copy.deepcopy(l1)

>>>print(id(l1), id(l2))

# 2788324482440 2788324483016

>>>print(id(l1[0]),id(l2[0]))

# 1470562768 1470562768

>>>print(id(l1[-1]),id(l2[-1]))

# 2788324482632 2788324482696

>>>print(id(l1[-2]),id(l2[-2]))

# 2788323047752 2788323047752

==================================================================

# 不同代码块下

import copy

l1 = [1, "jason&", True, (1, 2, 3), [22, 33]]

l2 = copy.deepcopy(l1)

>>>print(id(l1), id(l2))

1477183162632

>>>print(id(0), id(0))

1470562736

>>>print(id(-2), id(-2))

1470562672

>>>print(id(l1[-1]), id(l2[-1]))

1477183162312

    对于深copy来说,列表是在内存中重新创建的,列表中可变的数据类型是重新创建的,列表中的不可变的数据类型是公用的

6.进制转换

python进制转换

hex 可以 十进制转16进制 二进制转16进制 结果都是字符串

>>> hex(0b10)

'0x2'

>>> hex(10)

'0xa'

==================================================================

bin 可以十进制转2进制 16进制转2进制 结果都是字符串

>>> bin(10)

'0b1010'

>>> bin(0x2)

'0b10'

int 可以16进制转换十进制 2进制转换十进制

>>> int(0xe)

>>> int(0b100)

7.三元运算

python的三元运算:

变量名 = 变量1 if 条件判断成立 else 变量2

==================================================================

解释:条件成立 变量名值为变量1 否则为变量2

==================================================================

a=1

b=2

if a<b:

#一般条件语句的写法

k=a

else:

k=b

==================================================================

c=a if a<b else b

#三目运算符的写法

原文地址:https://www.cnblogs.com/cable-run/p/12161490.html