python编程之路_3(序列)

序列

python中,序列是一种数据存储方式。

序列的结构:
字符串、列表、元组、字典、集合

序列中存储的是整数对象的地址,而不是整数对象的值。

列表

列表中的元素可以是不相同的,可以是任意类型的。
列表大小可变。

创建

  1. 基本语法[]
  2. list()
  3. list(range(int))
  4. 推导式
    例:a = [x*2 for in range(100) if x%9==0]

添加

  1. append()
    原地创建,列表尾部添加新的元素,速度最快。
  2. extend()
    原地创建,推荐多个元素使用
  3. insert(位置,元素)
    指定位置,插入元素影响后面元素的移动。

  4. 产生新的对象。
  5. 乘法扩展
    通过乘法,使列表多次重复。

删除

  1. del()
    删除指定位置的元素。
  2. pop(位置)
    删除并返回指定位置元素,未指定位置默默人操作最后一个元素。
  3. remove()
    删除首次出现的元素,若元素不存在,该元素抛出异常。

访问

  1. index()
    获得指定元素在列表中首次出现的索引

  2. count()
    返回指定元素在列表中出现的次数

  3. len()
    返回列表长度

  4. in
    成员资格判断

排序

  1. sort()
    修改源列表,默认升序

  2. sort(reverse=True)
    降序排列

  3. random.shuffle()
    随机排列

  4. sorted()
    新建列表排序,默认升序

  5. reversed()
    返回迭代器,不对原表做任何修改,只返回逆序排列的迭代器对象。

其他

  1. max()
    返回最大值

  2. min()
    返回最小值

  3. sum()
    对数值型列表的所有元素进行求和,对非数值型元素列表运算报错。

列表中的二维列表

一维列表存储一维、线性的数据。
二维列表存储二维、表格的数据。

a[行][列]

元组

元组的元素不能修改。
元组的访问和处理速度比列表快。
元组可以作为字典的键,列表永远不能作为字典的键使用。

创建

  1. 小括号创建,小括号可省略

  2. tuple()
    可以将字符串、range函数、数组转换成元组。

  3. 生成器推到创建
    例:a = (x*2 for x in range(10))
    通过tuple(a)或a.next()依次调用

访问

元组 的访问和列表的访问相似。
元组中,没有list.sorted()方法,
对元组进行排序,只能使用内置函数sorted()生成新的 对象列表。

组合

  1. zip()
    将多个列表对应位置的元素组合成为元组,返回zip对象。

字典

字典中存储键值对。
键值对是无序可变序列,字典中的每一个对象都是一个键值对,包含:“键对象”和“值对象”。
通过“键对象”实现快速获取、删除、更新对应的“值对象”。
“键对象”是任意不可改变数据。
“值对象”是任意数据,可重复。

创建

  1. {}

  2. dict()
    方法一:B = dict(name=”xiaoming”,age=”20”)
    方法二:C = dict([(“name”,”xiaoming”),(“age”,”20”)])

  3. zip()

  4. fromkeys()
    创建值为空的字典。
    例:A = dict.fromkeys[‘name’,’age’,’job’]

访问

  1. []
    访问指定键,获得对应值。

  2. get()
    指定键不存在返回none,也可以返回指定的对象。
    例:a.get(‘name键’,’指定返回的对象’)

  3. items()
    列出所有的键值对

  4. keys()
    列出所有的键

  5. values()
    列出所有的值

  6. len()
    键值对的个数

  7. in
    判断成员

添加

  1. []
    存在,则覆盖
    不存在,新增

  2. update()
    将新字典中的所有键值对全部添加到就旧字典对象上,如果key右重复,则直接覆盖。
    例:a.update(b)-------------------将b添加到a上(b为新字典,a为旧字典)

删除

  1. del()
    删除指定

  2. clear()
    删除全部

  3. pop()
    删除指定,并返回

  4. popitem()
    随机删除并返回简直对

序列解包在字典中的使用
Name,age,job=s-------------------默认对键进行解包
Name,age,job=s.values-------------------对值进行解包
Name,age,job=s.itms-------------------对键值进行解包

字典核心底层原理

放入
1.计算放入‘键’的散列值(hash()计算)
2.拿出散列值最右边的规定的数字作为偏移量
3.通过查看偏移量在bucket中是否右位置,有,存储。没有,在散列值中依次取偏移量在来计算。
4.Bucket中有2/3已满,则扩大容量

取出
1.计算要取出’键‘的散列值
2.在bucket中的对应位置是否为空,空,返回none。不为空,计算bucket中对应位置的键的散列值,和要取出的散列值比较,相等返回,不相等,依次取其他几位数字,重新计算偏移量,依次取完后,仍然没有找到,则返回none。

集合

集合是无序可变的,元素不能重复。
集合底层是字典的实现。
集合的所有元素都是字典中的‘键对象’,因此不能重复且唯一。

创建和删除

创建-------------------{}

添加-------------------add()

转换成集合-------------------set()

删除-------------------remove()

清空整个集合-------------------clear()

相关操作

| union 并集
& intersectiiin 交集

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值