11 - 元组、集合和字典
来源:互联网 发布:wps两个表格数据对比 编辑:程序博客网 时间:2024/05/22 07:59
1.元组
- 与列表类似,但是元组中的元素是固定的。也就是说,一个元组一旦被创建,就无法对其元素进行添加、删除、替换或重新排序。
- 可以使用元组来防止数据被以外的修改。除元组的数据固定以外,其他方面和列表很像,甚至比列表效率更高。
- 可以通过将元素用一对圆括号括起来创建一个元组
示例:
t1 = ()t2 =(1, 3, 5)t3 = tuple([2 * x for x in range(1, 5)])t4 = tuple("abc")
一些元组的操作:
t3 = t1 + t2t3 =2 * t3print(t3[2:4])l1 = list(t2) #从tuple创建一个listt5 = tuple(l1)
我们看到这里 t3 被两次赋值,之前说过tuple不能被修改,那么这里不会抛出一个异常吗?
其实 tuple是一个不可变对象,跟之前讲过的 str, int, float等类似。这便是它与 list 的最大区别。
以上的语句并没有错误,因为重新建立了一个一个新的元组给变量 t3 ,原来的元组在内存中并没有消失。
不可变对象的特点在于不能给它添加、删除和替换元组及打乱其中的元素。
注意虽然元组是不可变对象,但是如果元组中存放的是可变对象,那么这个可变对象仍然是可变的。
from CircleFromGeometricObject import Circlecircles = (Circle(2), Circle(4), Circle(7))circles[0].setRadius(30)circles[0].getRadius()
2.集合
集合与列表类似,属于可变对象,但是集合中的元素是不重复且不按特定顺序放置的的
如果你的程序不关心元素的顺序,使用一个集合来存储数据比使用列表效率更高。
s1 = set()s2 = {1, 3, 5}s3 = set((1, 3, 5)) #从一个 tuple 创建一个 sets4 = set([x * 2 for x in range(1, 10)]) #从一个 list 创建一个 sets5 = set("abac") #a在集合中实际只出现了一次
一个集合可以包含不同类型的元素,例如:
s = {1, 2, 3, "one", "two", "three"}
集合的操作和访问:
s = {1, 2, 4}s.add(6)len(s)max(s)sum(x)3 in s #返回Falses.remove(4) #删除一个不存在的元素会返回KeyError
子集和超集:
s1 = {1, 2, 4}s2 = {1, 4, 5, 2, 6}s3 = {1, 2, 4}s1.issubset(s2) #s1 是否是 s2 的子集,返回 Trues2.issuperset(s1) #s2 是否是 s1的超集s1 == s2 #判断两个集合是否相等
集合运算:
s1 = {1, 2, 4}s2 = {1, 3, 5}s1.union(s2) #并集s1 | s2 #同上,并集s1.intersection(s2) #交集s1 & s2 #同上,交集s1.difference(s2) #差集s1 - s2 #同上,差集s1.symmetric_difference(s2) #异或,除共同元素之外的元素s1 ^ s2 #同上,异或
3.比较集合和列表的性能
- 下标访问:列表支持,集合不支持
- 对于
in
和not in
运算符和remove
方法,集合比列表的效率更高
4.字典
字典是一个存储键值对集合的容器对象,它通过关键字实现快速获取、删除和更新值。一个字典不能包含重复的关键字。每个关键字和它对应的值形成存储在字典中的一个条目。与字典很类似。
创建
stu = {}stu = {"111-34-3434":"John", "132-56-6290":"Peter"}
添加、修改和访问:
stu["234-56-9190"] = "Susan" #如果关键字已经存在的话,将会修改之前的值print(stu["234-56-9190"])
删除:
del stu["234-56-9190"]
遍历字典:
for key in stu: print(key + ":" + str(stu[key]))
其他操作:
len(stu)"234-56-9190" in stu #判断关键字是否在字典中d1 = {"red":41, "blue":3}d2 = {"blue":3, "red":41}d1 == d2 #判断是否相等
字典内置的方法:
keys()
返回关键字序列values()
返回值序列items()
返回键值对clear()
删除所有条目get(key)
返回关键字对应的值pop(key)
删除指定条目并返回其值popitem()
随机pop
0 0
- 11 - 元组、集合和字典
- 元组、列表、字典和集合
- Python 元组、集合和字典 实例
- python中的 元组 字典 和集合
- 列表、元组、字典、集合
- Python 学习笔记 -- 变量、元组、列表、字典和集合
- python中列表、元组、字典和集合
- Python容器:列表、元组、字典和集合
- Python006循环和遍历列表元组集合字典
- python的列表,元组,集合,字典
- 元组 列表 集合 字典 python
- python的列表、元组、字典、集合
- Python 列表、元组、字典、集合
- 【python基础】之元组 集合 字典
- 数据类型(元组,集合,字典,None)
- 列表、元组、字典、集合详解
- Python 列表、元组、字典、集合 区别
- 列表 字典 集合 元组的区别
- Linux复习笔记(三) -- Linux系统目录架构
- Matlab操作基础1
- 手机浏览器调试 --- 使用 PC 上的Chrome进行调试
- 数据库示例链接问题 无法连接到 (local)
- 命名空间的使用
- 11 - 元组、集合和字典
- iOS 动画之CALayer动画
- TFTLCD的图片以及汉字字符显示说明
- POJ--3984--迷宫问题
- 定制视图与触摸事件
- leetcode | Rotate Array
- 学习小结20150923--URL及媒体
- Light oj 1122 Digit Count(简单dp)
- 使用SQLiteOpenHelper插入数据到数据库并读取数据库中的内容