三. 数据类型:集合类型 + 映射类型

集合类型

  1. set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
  2. set存储的元素和dict的key类似,必须是不变对象

借助list创建set,重复元素会被合并。
s = set([1,2,34,1]) -> {1, 2, 34}

s.add(11) -> {1,2,34,11}
s.add(1) -> {1,2,34,11} 重复元素不会添加
s.remove(1) -> {2,34,11} 移除元素,如果元素不存在会报错

映射类型(字典表 dict)

  1. dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
  2. dict的第二个特点就是存储的key-value序对是没有顺序的
  3. dict的第三个特点是作为 key 的元素必须不可变
  4. Key – vlue存储结构
  5. 包含任意对象的无序集合
  6. 可变长度,异质,可任意嵌套
  7. 对象引用表 hash table

键只能是不可变的类型。
emplo = {‘name’:‘tom’,‘age’:23,‘salary’:333.55} –> {‘name’: ‘tom’, ‘age’: 23, ‘salary’: 333.55}
books = dict(title=‘Python’,author=‘Tom’,price=59.00) -> {‘title’: ‘Python’, ‘author’: ‘Tom’, ‘price’: 59.0}

image.png
image.png

book[‘key’] 元素不存在时会抛异常
book.get(‘key’) 元素不存在时返回None
book.get(‘key’,’not exist’) 元素不存在时返回’not exist’

book.keys() –> 视图(dict_keys) 得到所有的键。
list(book.keys()) -> 转换为list

>>> for val in books.values(): 得到字典表直接遍历
...  print(val)
...
Python
Tom
59.0
>>>

>>> for (k,v) in books.items():
...  print('{} -> {}'.format(k,v))
...
title -> Python
author -> Tom
price -> 59.0
>>>


常用操作

course = { … }
c = course.copy() 复制
c.clear() 清空
c[‘key’] = ‘newValue’ 修改
c.update(c1) 更新并合并
del c[‘key’] 删除
c.pop(‘key’) 弹出(删除并返回值),找不到抛异常
c.pop(‘key’,None) 弹出(删除并返回值),找不到返回None
c.popitem(‘key’) 弹出整个键值对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值