元组
- 元组是不可变的列表
- 元组是容器型数据类型
(元素1, 元素2, 元素3, 元素4,...)
tuple = ()
特点:
- 元组不可变,不支持增删改的操作
- 元组是有序的,支持下标操作
- 元组中的元素可以是任何数据
注意:
- 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
tup1 = (50,)
多个元素的元组:
变量 = (元素1, 元素2, 元素3,...)
变量 = 元素1, 元素2, 元素3,...
获取元组中的元素:
- 元组支持列表获取元素的方式(详见day6 列表)
- 以下方法同样适用于列表:
变量1, 变量2, 变量3... = 元组 变量个数和元组中元素个数保持一致
-
变量1, 变量2, ... = 元组 变量个数小于元组中元素数量,且有且仅有一个变量前加
tuple = (10, 20, 30)
x, y, z = tuple
print(x, y, z)
*i, j = tuple
print(i, j)显示内容
10 20 30
[10, 20] 30
元组的相关操作:
- 元组支持列表的相关操作(详见day7 列表的相关操作)
字典
- 需要同时保存多个数据
- 数据之间需进行区分
dict = {key1 : value1, key2 : value2 }
字典的性质:
- 键必须是唯一的,但值则不唯一
- 字典是可变、无序的
- 字典中的元素必须是键值对
- 键是唯一的、不可变的
- 值可以是任何类型的数据且可以重复
获取字典的值:
-
获取单个元素的值
字典[key] 获取字典中指定key对应的值
字典.get(key) 获取字典中指定key对应的值
-
字典.get(key,默认值) 获取字典中指定key对应的值,若key不存在则返回默认值
dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict1['Name'])
print ("dict['Age']: ", dict1['Age'])显示内容
dict['Name']: Runoob
dict['Age']: 7
-
遍历字典
for 变量 in 字典 变量取到的位字典中所有的key
for 变量 in 字典.values(): 变量取到的是字典中所有的值
-
for 变量1,变量2 in 字典.items(): 变量1取到key,变量2取到值
dict1 = {'Name' : 'Runoob', 'Age' : 7, 'Class' : 'First'}
for x in dict1:
print(x)显示内容
Name
Age
Class
字典的增删改
字典的添加/修改
字典[key] = 值
- 当key存在,则修改key对应的值
- 当key不存在,则在字典末尾添加键值对
字典.setdefault(key,value)
-
只能用于添加字典元素,不存在修改功能
dict1 = {'Name' : 'Runoob', 'Age' : 7, 'Class' : 'First'}
dict1['time'] = 2020
dict1['Name'] = 'yyy'
print(dict1)显示内容
{'Name': 'yyy', 'Age': 7, 'Class': 'First', 'time': 2020}
字典的删除
del 字典[key]
- 删除key对应的键值对
字典.pop(key)
- 取出key对应的值并返回该值
字典的相关操作
- 字典不支持 + * 运算
比较运算:
- 仅支持是否相等的比较,不支持大小的比较
in not in
- 数据 in 字典 判断字典中是否存在指定的key
相关函数:
len(字典) 统计字典中键值对个数
-
dict(数据) 将指定数据转换为字典
数据为容器型数据类型
数据中的元素是有且仅有两个的容器
-
第一个元素是不可变的
x = [(1,2),(3,4),[5,6]]
dict1 = dict(x)
print(dict1)显示内容
{1: 2, 3: 4, 5: 6}
bool(字典) 空字典会转换为False
list(字典) 将字典中所有的key作为列表的元素
tuple(字典) 将字典中所有的key作为元组的元素
相关方法
- 字典.clear 清空字典
- 字典.copy 复制并生成一个新字典
- dict.fromkeys(序列) 创建一个新的字典,字典的key为序列中的元素,值都是None
- dict.fromkeys(序列,值) 创建一个新的字典,字典的key为序列中的元素,值都是指定的值
- 字典.keys() 返回字典中所有的key,返回一个容器,不是列表
- 字典.values() 返回字典中所有的值,返回一个容器,不是列表
- 字典.items() 返回字典中所有的键值对,将每个键值对转化为元组,返回一个容器,不是列表
- 字典.update(序列) 将序列转换为字典,用转换后的字典更新原字典
集合
- 容器型数据类型
{元素1,元素2,元素3,元素4,元素5...}
- 集合是可变的,支持增删改
- 集合是无序的
- 集合中元素是不可变且唯一
- 集合无法直接修改元素
空集合
- empty = set()
集合的增删查
- 集合无法获取单个元素,只能遍历
for 变量 in 集合:
循环体
- 单个添加元素
- 集合.add(元素) 往集合中添加指定元素
- 多个添加元素
- 集合.update(序列) 将序列中元素添加到集合中,序列中元素不可变
- 删除元素
- 集合.remove(元素) 删除集合中指定的元素,当元素不存在时会报错
- 集合.discard(元素) 删除集合中指定的元素,当元素不存在时不会报错
数学集合运算
-
python中的集合支持数学集合运算:&(交集)、|(并集)、-(差集)、^(对称差集)、>/<(真子集)
set1 = {1,2,3,4,5,6}
set2 = {5,6,7,8,9}print(set1 & set2)
print(set1 | set2)
print(set1 - set2)
print(set1 ^ set2)
print(set1 < set2)显示内容
{5, 6}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4}
{1, 2, 3, 4, 7, 8, 9}
False