了解Python(基础)

三元运算

三元运算(三目运算),是对简单的条件判断语句的缩写。

格式:

a = 值1 if 条件 else2

例子:

user = input("请输入名字:")
a = "成功" if user == "dyq" else "失败"
print(a)

如果条件成立,值1赋值给变量a,如果条件不成立,值2复制给变量a。


set集合

set可以看做是一个类似于字典的集合,只是set没有value只有key,且set的元素不允许重复。简单来说set就是一个只有key的不允许元素重复的字典。set集合多用在统计不重复内容上。

创建set

s1 = set()   #可以加set创建
s2 = {11,22,33,44}  #可以直接用字典的方式创建
print(s1,"\n", s2)

转换

a = (11,22,33,44,44)
b = [11,22,55,33,43]
c = "1233"
s1 = set(a)
print(s1)
{33, 11, 44, 22}    #转换以后元组重复的内容会自动去掉,格式也会变成字典的格式
s2 = set(b)
print(s2)
{33, 11, 43, 22, 55}    #列表格式变化,去重复值
s3 = set(c)
print(s3)
{'3', '2', '1'}     #变格式,去重复

set类型里的方法

set和其他类型的集合一样有自己的内置方法

  • .add:向set集合中添加内容
s1.add("da")
s1.add("da", "dda")    #如果添加两次相同的元素,set集合不允许重复
print(s1)
{'dda', 'da'}
  • .difference:查找a中存在b里不存在的内容,用变量把这些不同的内容赋值给一个新的变量。通俗讲就是 a 里面有 b里面没有的内容,提取出来。
b = {11,66,33,44}
a = {55,33,44}
dif = a.difference(b)
print(dif)
{55}    #从结果可以看出方法的作用,就是找出a面有但b里面没有的元素
dif = b.difference(a)    #找出b里面有a里面没有的内容
print(dif)
{66, 11}
  • .difference_update:找到a里面有b里面没有的元素,找到后赋值给a
b = {11,66,33,44}
a = {55,33,44}
a.difference_update(b)
print(a)
{55}    #a被重新赋值为找出来的b里面没有的元素
b.difference_update(a)    #找到b里面有a里面没有的元素再赋值给b
print(b)
{66, 11}
  • .clear():清空
b.clear()   
print(b)
  • .discard( ):移除
b.discard(22)
print(b)
{33, 66, 11, 44}    #discard如果删除列表中没有的内容时不会报错,这也是它的一个特性
  • .remove():移除
b.remove(22)
print(b)
remove如果指定一个集合中没有的元素时,会报错
  • .intersection:交集,将两个参数中有交集的元素定义给另一个变量
b = {11,66,33,44}
a = {55,33,44}
ret = b.intersection(a) #a,b的位置对调也可以
print(ret)
{33, 44}
  • .intersection_update():将a与b的交集定义给a
b = {11,66,33,44}
a = {55,33,44}
b.intersection_update(a)
print(b)
{33, 44}
a.intersection_update(b)    #将两个set的交集赋值给哪个set完全取决于哪个在方法的前面。
print(a)
  • .isdisjoint():查看两个set集合中有没有交集,如果有返回False,如果没有返回True
ret = a.isdisjoint(c)
print(ret)
  • .issubset():判断b是不是a的子序列,如果是返回True,如果不是返回False
a = {11,66,33,44}
b = {33,44}
ret = b.issubset(a)
print(ret)
True
  • .issuperset():判断a是不是b的父序列,如果是返回True,如果不是返回False
ret = a.issuperset(b)
print(ret)
  • .pop():随机移除一个元素,可以赋值给一个变量,移除时没有规律
b = {"a", "b", 12, 3}
b.pop()
print(b)
  • .symmetric_difference():对称交集,把a和b不重合的元素赋值给新变量
a = {11,66,33,44}
b = {33,44, 55, 66}
atr = a.symmetric_difference(b)
print(atr)
{11, 55}
  • .symmetric_difference_update:对称交集,把a和b不重合的元素赋值给a
a.symmetric_difference_update(b)
print(a)
{11, 55}
  • .union:并集,把a和b所有元素合并,如果有重复的会去重
a = {11,66,33,44}
b = {33,44, 55, 66}
ret = a.union(b)
print(ret)
{33, 66, 11, 44, 55}
  • .update:更新,把列表a的内容更新到b集合里面,会自动去重
a = [33,55,11,22]
b = {33,44, 55, 66}
b.update(a)
print(b)
{33, 66, 11, 44, 22, 55}

深浅拷贝

  • 数字和字符串

对字符串和数字无论如何copy,其值的内存ID号不会改变,由此我们得出结论:
对于数字和字符串来说,对象不可被修改,只会重新生,所以,赋值和深浅拷贝无意义。

  • 赋值

这里写图片描述

n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}
n2 = n1

变量n1赋值给变量n2时,变量的内存地址不变

  • 浅拷贝
    这里写图片描述

在内存中额外创建第一层数据,只创建第一层,其他层不变。

  • 深拷贝

这里写图片描述

深拷贝就是把集合里的所有内容全部拷贝一遍,所有内容的ID跟原来的都不相同。

深浅拷贝主要是一个概念问题,操作完全在内存中进行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值