今天开始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]
这样便可以解决对应的问题了