python基础之深浅拷贝布尔表达式

python基础之深浅拷贝布尔表达式

深浅拷贝

list1=[10,20,30,[40,50]]
list2=list1 #list1和list2指向的是同一个内存地址
list1[3][0]=60 #修改了list1的值,list2中的值也会改变
list1[0]=99
print(list1)
print(list2)
list1=[10,20,30,[40,50]]
list2=list1[:] #切片可以生成新列表,但对于子列表,仍指向的同一个地址
list1[3][0]=60 #修改了list1的值,list2中的子列表值也会改变
list1[0]=99#修改了list1的值,list2中的值不变
print(list1)
print(list2)
list1=[10,20,30,[40,50]]
import copy #导入标准库中的copy模块
list2=copy.copy(list1) #浅拷贝,等价于切片[:]
list1[3][0]=60 #修改了list1的值,list2中的子列表值也会改变
list1[0]=99#修改了list1的值,list2中的值不变
print(list1)
print(list2)
list1=[10,20,30,[40,50]]
list2=copy.deepcopy(list1) #深拷贝
list1[3][0]=60 #修改了list1的值,list2中的子列表值不会改变
list1[0]=99#修改了list1的值,list2中的值不变
print(list1)
print(list2)

打印结果演示

[99, 20, 30, [60, 50]]
[99, 20, 30, [60, 50]]
[99, 20, 30, [60, 50]]
[10, 20, 30, [60, 50]]
[99, 20, 30, [60, 50]]
[10, 20, 30, [60, 50]]
[99, 20, 30, [60, 50]]
[10, 20, 30, [40, 50]]

布尔表达式

list1=[10,20,30,[40,50]]
#in,在...之中
print(10 in list1) #10在列表list1中,所以为真
print(50 in list1) #50不在列表list1中,而是在它的子列表中,所以为假
print(50 in list1[3]) #50是在子列表中,所以为真
print('10' in list1) #'10'是str型,而list1中没有str型的'10'
# not in 不在...之中
print(40 not in list1)
#逻辑运算符and 并且,or 或者
print(1>2 and 2>1 and 3>2 and 5>4 and 6>5) #只要当中有一个False就为False 一假为假,全真为真
print(1>2 or 2>10 or 3>20 or 5>40 or 6>5) #一真为真,全假为假
#and,or,not的优先级 not>and>or
print(1>2 and 2>1 or 3>20 and 5>4 or 6>5)
print(1>2 and 2>1 or 3>20 and (5>4 or 6>5)) #括号可以改变优先级
#布尔类型True 真,也可以用1表示 False 假 也可以用0表示
#字母之间的比较,是根据ASCII码来比较的,a=97,A=65
print('a'>'B')
#多个字母之间的比较,只比较第一位,只有第一位相同时,才会向后比较
print('aA'>'Aa')
#赋值号= 与恒等符号==
print(1==1)

打印结果演示

True
False
True
False
True
False
True
True
False
True
True
True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值