第六课提纲
一、元组 | 1.创建 | |
2.解压和打包 | ||
二、字典 | 1.创建与删除 | |
2.元素的访问 | 访问异常 | |
3.添加、修改与删除 | update() | |
pop()、popitem() | ||
三、集合 | 1.创建与删除 | |
2.增减元素 | add()、update() | |
pop()、remove() | ||
discard()、clear() | ||
3.集合运算 | len()、max()、min()、sum() | |
sorted()、map()、filter()、enumerate() | ||
交集、并集、差集 |
一、元组
列表的功能虽然很强大,但是负担也很重要,在很大程度上影响了运行效率。有时并不需要那么多功能,希望有个轻量级的列表,元组正是这样一种类型。如果要存储的数据是不能修改的数据,可以采用元组,元组内的数据是不能修改的。图1 元组的创建
元组和列表的不同:
元组和列表都是有序序列,都支持双向索引访问其中的元素,以及使用count()方法统计元组的出现次数和indexx()获取元素的索引,len()、map()、filter()等内置函数和+、*、+=、in等运算法都可以用于列表和元组。虽然列表和元组都有着一定的相似之处,但在本质上和内部实现上有很大的不同。元组属于不可变序列,不可以直接修改元组中元素的值,也无法为元组增加或删除元素。所以,元组没有提供append()、extend()和insert()等方法,无法向元组中添加元素。同样,元组也没有remove()和pop()方法,也不支持对元组元素进行del操作,不能从元组中删除元素,只能用del命令删除整个元组。元组也支持切片操作,但是只能通过切片来访问元组中的元素,而不允许使用切片来修改元组中元素的值。列表的打包与解压功能,方便操作:
图2 元组的打包和解压功能
二、字典:
字典是包含若干“键:值”元素的无序可变序列,字典中的每个元素包含用冒号分隔开的“键”和“值”两部分,表示一种映射或对应关系。定义字典时,每个元素的“键”和“值”之间用冒号分隔,不同元素之间用逗号分隔,所有的元素放在一对{}中。字典中元素的键可以是python中任意不可变数据,如实数、复数、字符串、元组等类型的数据,但是不能使用列表、集合、字典或者其他可变类型作为字典的键。另外,键不可重复,但是值可以重复。1.字典创建与删除
创建字典时,可以使用已经有的数据创建、以关键参数的形式创建或者以给定键的内容的形式创建。删除时,直接del即可。图3 字典创建与删除
2.字典元素的访问
图4 字典元素的访问
为了避免程序运行时引发异常而导致崩溃,在使用下标的方式访问字典元素时,最好配合条件判断或者异常处理结构。图5 防止访问异常
字典对象提供了一个get()方法来返回指定“键”对应的“值”,并且允许指定该“键”不存在时返回特定的“值”:aDict.get('age') #如果字典中存在该“键”则返回对应的“值”aDict.get('address','Not Exists.')#指定的键不存在时返回指定的默认值
字典对象的setdefault()方法用于返回指定的“键”对应的“值”,如果字典中不存在该“键”,就添加一个新元素并设置该“键”对应的“值”:
>>> aDict={'age':39,'score':[98,97],'name':'Dong','sex':'male'}>>> aDict.setdefault('address','SDIBT')'SDIBT'>>> aDict{'name': 'Dong', 'address': 'SDIBT', 'sex': 'male', 'age': 39, 'score': [98, 97]}
字典对象直接进行迭代或者遍历时默认是遍历字典的“键”,如果需要遍历字典的元素,必须使用字典对象的items()方法明确说明,如果需要遍历字典的“值”则必须使用字典对象的values()方法说明。当使用len()、max()、min()、sum()、sorted()、enumerate()、map()、filter()等内置函数以及成员测试运算符in对字典对象进行操作时,也遵循同样的约定。
图6 访问字典元素
3.字典元素的添加、修改与删除
当以指定的“键”为下标为字典元素赋值时,有两种含义:①若该“键”存在,则表示修改该“键”对应的值
②若该“键”不存在,则表示添加一个新的“键:值”对,也就是添加一个新的元素
图7 修改、添加和删除
使用字典对象的update()方法可以将另一个字典的“键:值”一次性全部添加到当前字典对象,如果两个字典存在相同的“键”,则以另一个字典中的“值”为准对当前字典进行更新。图8 update进行修改和添加
pop()和popitem()方法可以弹出并删除指定的元素。
图9 pop和popitem进行删除
三、集合:元素之间不允许重复
集合属于python无序可变序列,使用一对大括号作为界定符,元素之间使用逗号分割,同一个集合内的元素的都是唯一的,元素之间不允许重复。1.集合的创建与删除
>>>a={3,5}>>>type(a)<class ‘set’>
也可以使用set=()函数将列表、元组、字符串、range对象等转换为集合,如果原来的数据中存在重复元素,则在转换为集合的时候只保留一个。
图10 创建集合
2.增加和删除集合元素
方法 | 说明 |
add() | 添加新的元素,如果已存在则忽略 |
update() | 将一个集合添加到另一个集合,自动去掉重复部分 |
pop() | 随机删除并返回一个元素,如果集合为空则抛出异常 |
remove() | 删除集合中的元素,如果指定元素不存在则抛出异常 |
discard() | 从集合中删除一个特定元素,若不存在则忽略该操作 |
clear() | 清空集合 |
>>>s={1,2,3}>>>s.add(3) #增加元素,重复元素自动忽略>>>s.update({3,4}) #更新当前字典,自动忽略重复元素>>>s{1,2,3,4}>>>s.discard(5)>>>s.remove(5)KeyError:5>>>s.pop()1
3.集合运算
集合运算的内置函数有:len()、max()、min()、sum()、sorted()、map()、filter()、enumerate()、还有数学意义上的交集、并集、差集等运算。图12 集合的运算
点击留言