内容:
1. 元组
2. 字典
3. 集合
=========================== 元祖类型
什么是元组: 元组就是一个不可变的列表
======================================基本使用======================================
1、用途: 用于存放多个值,当存放的多个值只有读的需求没有改的需求时用元组最合适 2、定义方式:在()内用逗号分隔开多个任意类型的值
t=(1,3.1,'aaa',(1,2,3),['a','b']) # t=tuple(...) 3、常用操作+内置的方法
优先掌握的操作:
1、按索引取值(正向取+反向取):只能取,不能改
2、切片(顾头不顾尾,步长)
3、长度
4、成员运算in和not in
5、循环 ======================================该类型总结====================================
存多个值 有序 不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash) 掌握的方法
index 查找,找不到会报错 (x.index('a'))
count计数 (x.count(''a)) -----------------------------------
字典类型
======================================基本使用======================================
1、用途: 用来存方多个(不同种类的)值 2、定义方式: 在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来
描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(int\float\str\tuple) 3、常用操作+内置的方法
优先掌握的操作:
1、按key存取值:可存可取
2、长度len
3、成员运算in和not in
4、删除#pop 有返回值,popitem随机删除 (x.popitem())
5、键keys(),值values(),键值对items()
print(list(d.keys()))
print(list(d.values()))
print(list(d.items()))
6、循环 ======================================该类型总结====================================
存多个值
无序
可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash 需要掌握的操作
get方法 (x.get('a'))
update方法,新增和覆盖 (x.update({})) fromkeys:需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表
keys=['name','age','sex']
d={}.fromkeys(keys,None)
print(d) setdefault 新key会新增,老key返回原值(x.setdefault('a',1)) ---------------------------------------
集合类型 1. 什么是集合
在{}内用逗号分隔开多个值,集合的特点:
1. 每个值必须是不可变类型
2. 集合无序
3. 集合内元素不能重复
2. 为何要用集合
1. 用于做关系运算
2. 去重
3. 如何用集合 一,集合的第一大用途: 关系运算
pythons={'egon练习','张铁蛋','李铜蛋','赵银弹','王金蛋','艾里克斯'}
linuxs={'欧德博爱','李铜蛋','艾里克斯','lsb','ysb','wsb'} 1 求同时报名两门课程的学生姓名:交集 &
print(pythons & linuxs) 2 求报名老男孩学校课程的所有学生姓名:并集 |
print(pythons | linuxs) 3 求只报名python课程的学生姓名: 差集 -
print(pythons - linuxs) #求只报名pythons课程的学生姓名 4 求没有同时报名两门课程的学生姓名: 对称差集 ^
print((pythons - linuxs) | (linuxs - pythons))
print(pythons ^ linuxs) 5 父子集:指的是一种包含与被包含的关系
情况一:
s1={1,2,3}
s2={1,2}
print(s1 > s2) #>号代表s1是包含s2的,称之为s1为s2的父集
情况二:
s1={1,2,3}
s2={1,2,3}
print(s1 == s2) #s1如果等于s2,也可以称为s1是s2的父集合
综上:
s1 >= s2 就可以称为s1是s2的父集 二,集合的第二大用途:去重
集合去重的局限性:
1. 会打乱原值的顺序
2. 只能针对不可变的值去重 stus=['egon练习','lxx','lxx','alex','alex','yxx']
new_l=list(set(stus))
print(new_l) old_l=[1,[1,2],[1,2]]
print(set(old_l)) 集合里面不能放字典/列表
l=[
{'name':'egon练习','age':18,'sex':'male'},
{'name':'alex','age':73,'sex':'male'},
{'name':'egon练习','age':20,'sex':'female'},
{'name':'egon练习','age':18,'sex':'male'},
{'name':'egon练习','age':18,'sex':'male'},
]
new_l=[]
for dic in l:
if dic not in new_l:
new_l.append(dic)
print(new_l) 需要掌握的操作:
update 更新 (x.update(1))
add 添加 (x.add({1})) pop 随机删除 (x.pop) remove 删除选定的值,如值不存在,会报错 (x.remove)
discard 删除选定的元素,如值不存在,不会报错 (x.discard) isdisjoint 判断,两个set没有关联则为True (x.isdisjoint(y)) ======================================该类型总结====================================
存多个值
无序
set可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash

最新文章

  1. Python高手之路【一】初识python
  2. mysql删造成表死锁研究
  3. 求双连通分量的详解。(根据刘汝佳的训练指南p314)
  4. 201521123025 <<java程序设计>>第3周学习总结
  5. 转贴---Linux服务器性能评估
  6. Kafka的安装及与Spring Boot的集成
  7. oracle字符串提取记录
  8. Loadrunner Web (HTTP/HTML) 接口测试
  9. 【译】理解JavaScript闭包——新手指南
  10. [SNV]奇怪的错误搜集
  11. 使用Webuploader大文件分片传输
  12. python 全栈开发,Day111(客户管理之 编辑权限(二),Django表单集合Formset,ORM之limit_choices_to,构造家族结构)
  13. day2编程语言的两大分类
  14. 关于QTcreator出现不能包含头文件的解决
  15. Java中Arrays 与 Collections 的简单操作
  16. UVaLive 6525 Attacking rooks (二分图最大匹配)
  17. form表单post请求保护 隐藏秘钥
  18. Python 批量修改文件夹名称
  19. 通用标签、属性(body属性、路径、格式控制)
  20. Python下科学计算包numpy和SciPy的安装【原创】

热门文章

  1. maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式
  2. mysql存储过程变量的拼接
  3. ansible-playbook 变量(vars)
  4. Scala进阶之路-并发编程模型Akka入门篇
  5. 5、Python-字典
  6. WorkerMan 入门学习之(三)基础教程-Timer类的使用
  7. C++ 输入输出八进制、十进制、十六进制
  8. android 简单文件操作
  9. js取最大最小值
  10. luogu P1070 道路游戏