Python非线性数据结构

一.封装与解构
1.封装(装箱)
a.将多个值使用逗号分割,组合在一起
b.本质上,返回一个元组,只是省掉了小括号

t1 = (1,2)#定义为元组
t2 = 1,2 #将1和2封装成元组
type(t1)
type(t2)
2.交换(封装解)
a = 4
b = 5
temp = a
a = b
b = temp
等价于
a,b = b,a
左边封装右边解构
3.解构(拆箱)
a.把线性结构的元素解开,并顺序的赋给其他变量
b.左边接纳的变量数要与右边解开的元素个数一致
c.举例
lst = [3,5]
frist,second = lst
print(frist,second)
4.解构
a,b = 1,2
a,b = (1,2)

5.Python3的解构
a.使用*变量名接收,但不能单独使用
b.被 变量名收集后组成一个列表
6.丢弃变量
a.这是一个惯例,是一个不成文的规定,不是标准
b.如果不关心一个变量,就可以改变量的名字为_
c._是一个合法的标识符,也可以作为一个有效的变量使用,但是定义成下划线就是不要被使用,除非你明确知道这个数据需要使用
总结
a._这个变量本身无任何语义,没有任何可读性,所以不是用来给别人使用的
b.Python中很多库,都使用这个变量,使用十分广泛
二.集Set
1.约定set翻译为集合
a.collection翻译为集合类型,是一个大概念
2.set
可变,无序,不重复的元素组合
3.set定义,初始化
a. set()-> new empty set object
b. set(iterable)->new set object
s1 = set()
s2 = set(range(5))
c.set的元素要求必须可hash,目前学过的不可hash类型有list,set,元素不可使用索引,set可以迭代
4.set的增加
a.add(elem)
增加一个元素到set中,如果元素存在,什么都不做
b.update
合并其他元素到set集合中,参数others必须是可迭代对象,就地修改
5.set的删除
a.remove discard pop() clear()
6.set 修改,查询
a.要么删除要么加入新的元素,非线性元素,无法索引,可迭代所有元素
7.集合
a.全集:所有元素的集合,子集:一个集合A所有的元素都在另一个集合B内,A是B的子集,B是A的超集,A是B的子集,且A不等于B,A就是B的真子集,B是A的真超集
b.差集:集合中除去和其他集合公共部分
8.集合运算
a.并集
b.交集
c.差集:集合A和B,由所有属于A且不属于B的元素组成的集合
d.对称差集:集合A,B,不属于它两的交集元素组成的集合
9.字典dict
a.key-value键值对的数据的集合
b.可变,无序,key不重复
c.d = dict() d = ()
10.标准库datetime
11.列表解析及生成器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值