(一小时系列)python学习手册(3) 集合

今天开始python的day3复习了,时间原因,只能在下班时间去复习,每天复习一段时间。

话不多说,让我们开始吧:

集合

a = set([1,2,3,4])
b = set('span')
print(a,'and',b)
b.add('adot')
print(b)

L = [1 , 2, 6 , 4 , 1, 2, 5, 3]
M = set(L)
print(L)
print(M)

输出:

{1, 2, 3, 4} and {'n', 'a', 'p', 's'}
{'n', 'a', 'p', 's', 'adot'}
[1, 2, 6, 4, 1, 2, 5, 3]
{1, 2, 3, 4, 5, 6}

set出的集合,与字典十分的相似,会用就行,不需要纠结,满足数学中的集合特点

#python 对象问题

num = 1
num2 = num
num += 1
print(num)
print(num2)

les = [1, 2 , 3, 4]
les2 = les
les[0] = 8
print(les)
print(les2)

输出:

2
1
[8, 2, 3, 4]
[8, 2, 3, 4]

 

说明与解决方案:

 由于python采用的是对象引用,数字,字符串,元组是不可改变的,上面发下 num 与num1 得到的值是不同的,因为在

 num += 1 的时候从新创建了一个对象,但是可改变的列表,对第一个改变时候,后面全部都会变,引用的结果。那python

 如何解决这个问题呢?

#方案1
L = [1,2,3,4]
L2 = L[:] #切片复制
L[0] = 10
print(L)
print(L2)
#方案2 copy函数
import copy
X = copy.copy(L)
Y = copy.deepcopy(L)
L[1] = 25
print(X,L,Y)

输出结果:

[10, 2, 3, 4]
[1, 2, 3, 4]
[10, 2, 3, 4] [10, 25, 3, 4] [10, 2, 3, 4]

 这样便可以解决对应的问题了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值