day3 - 三元表达式,列表生成,变量交换,深拷贝和浅拷贝

#三元表达式
age =12
age1=''
age1='成年' if age >= 17 else '未成年'
print(age1)


#列表生成
l= list(range(1,10))

l3 = [i for i in l if i%2==0]
print(l3)

#变量交换
a=1
b=2
#第一种
a,b=b,a
print(a,b)
#第二种
a=a+b
b=a-b
a=a-b
print(b,a)
#第三种,引入变量
teb=b
b=a
a=teb
print(a,b)

#深拷贝和浅拷贝
只有import copy 的 copy.deepcopy才是深拷贝

import copy
#要打印出列表里的偶数
l=[1,1,2,3,4,5,6,7,8]
l2=[1,1,2,3,4,5,6,7,8]
#l=l2 ##浅拷贝,内存地址不变(正在循环的list,删除里面的元素会导致下标错乱,取值有误)
print(id(l))# 看内存地址
for i in l2:
if i%2 !=0:
l.remove(i)
print(l)
l3= [1,2,3,[1,2,3]]
l5=l3.copy() #也是浅拷贝,用copy,内存地址会变,但多维的话,值会受影响
l3[-1][1]=0
print(l3)
print(l5) # l3 改变 l5也会改变
l7=copy.copy(l3)#浅拷贝
l6=copy.deepcopy(l3)#深拷贝
posted @ 2021-04-25 21:33  wxy90  阅读(76)  评论(0)    收藏  举报