day8学习笔记(元组和字典)

元组和字典

元组

1. 元组tuple就是不可变的列表 - 不支持增删改

元组是容器型数据类型,将()作为容器的标志,元素之间逗号隔开:(元素1, 元素2,元素3,…)
元组是有序的(支持下标操作)
1)空元组

tuple1 = ()
print(type(tuple1))

2)单个元素的元组

list1 = [10]  # 单个元素列表
tuple2 = (10,)

3)多个元素的元组

a. 变量 = (元素1, 元素2, 元素3,…)
b. 变量 = 元素1, 元素2,元素3,…

2. 获取元组中的元素

1)元组支持列表获取元素的方法
a. 获取单个元素 - 元组[下标]
b. 切片 - 元组[开始下标:结束下标:步长]
c. 遍历 - for 变量 in 元组: / for 下标 in range(len(元组)):
2)其他方式(同样适用于列表)
a. 变量1,变量2,变量3,… = 元组 (变量个数与元组元素保持一致)

tuple3 = 10, 20, 30
x, y, z = tuple3

b. 变量1,变量2,变量3,… = 元组 (变量个数小于元组元素个数,并且有且只有一个变量前有*

a, b, *c, d, e = 1, 2, 3, 4, 5, 6, 7, 8, 9
print(a, b, c, d, e)
print(type(c))
print(*c)

补充:*打包\解包功能

3.列表相关操作全部适用于元组

字典基础

1. 字典(dict) - 同时保存多个数据,且数据意义不同

#字典是容器型数据类型,将{}作为容器标志,多个元素之间逗号隔开(字典元素是键值对):{键1:值1,键2:值2}
字典是可变的,无序的(不支持下标操作)
字典中元素:键值对
键 - 不可变、唯一性(一般是字符串)
值 - 任何类型的数据,可重复
字典保存的是值,键是对值进行区分和区别

空字典

dict_x = {}

2. 获取字典的值

1)获取单个元素的值
a. 字典[key] - 获取字典中指定key对应的值(如果不存在,报错)
b. 字典.get(key) - 获取字典中指定key对应的值(如果不存在,返回None)
c. 字典.get(key, 默认值) - key不存在,返回默认值

2)遍历
a. 掌握和使用的遍历方法(效率最高)
for 变量 in 字典:
循环体
注意:遍历字典中所有key

dict1 = {123: 45, '456': 78, '789': 90}
for x in dict1:
    print(x, dict1[x])

b. 其他两种情况
for 变量 in 字典.values():
循环体
注意:遍历字典中所有值(效率低)

c. 其他两种情况
for 变量1, 变量2 in 字典.items():
循环体

for x, y in dict1.items():
    print(x, y)

应用

students = [{'name': '姓名1', 'age': 23, 'telephone': '13756784455', 'score': 89},
            {'name': '姓名2', 'age': 17, 'telephone': '13758888455', 'score': 98},
            {'name': '姓名3', 'age': 18, 'telephone': '13711114455', 'score': 76},
            {'name': '姓名4', 'age': 16, 'telephone': '13756789999', 'score': 66}]
count = 0
for stu in students:
    if stu['age'] < 18:
        count += 1
print(count)

字典元素的增删改

1. 增/改

语法1:字典[key] = 值
说明:key存在(改),修改制定key对应的值,key不存在(增),增加键值对’key:值’

语法2:字典.setdefault(键, 值) - 添加键值对(不存在修改功能)

2. 删

1)del
del 字典[key] - 删除指定key对应键值对(key不存在,报错)
2)pop
字典.pop(key) - 取出字典中指定key对应的值,并且返回被取出的值

字典相关操作和方法

1.字典相关操作

字典不支持加法和乘法运算
1)比较运算
字典只支持比较相等,不支持比较大小
2)in 和 not in
key in 字典 - 判断字典中是否存在指定的key
key not in 字典 - 判断字典中是否不存在指定的key
3)相关函数
a. len(字典) - 统计键值对个数

b. dict(数据) - 将数据转换为字典
数据要求:1.容器型数据 2.数据元素中有且只有两个元素 3.数据元素中第一个元素是不可变的

c.字典转换成其他数据类型
bool(字典) - 空字典转换为False,其他为True
list(字典) - 将字典的key作为列表的元素
tuple(字典) - 将字典的key作为元组的元素

2.相关方法

1)字典.clear() - 清空字典
2)字典.copy() - 复制字典并产生新的字典
3)dict.fromkeys()
dict.fromkeys(序列) - 创建新字典,key是序列中元素,值为None
dict.fromkeys(序列, 值) - 创建新字典,key是序列中元素,值为指定值

stu = dict.fromkeys(['name', 'age', 'gender', 'tel', 'score'])

4)item, keys, values

字典.keys() - 获取字典中所有key,返回一个容器(容器不是列表)
字典.values() - 获取字典中所有值,返回一个容器(容器不是列表)
字典.items() - 获取字典中所有键值对,返回一个容器,容器中元素是元组,每个元组对应一个键值对(容器不是列表)

5)字典.update(序列) - 用序列生成的字典更新原字典(存在修改,不存在添加)

集合

1.集合(set) - 容器型数据,将{}作为容器的标志,元素间逗号隔开:{元素1, 元素2, 元素3,…}

集合是可变的(支持增删改)、无序的
集合中元素不可变并且唯一,列表不能作为集合的元素
空集合

empty = set()    # {}是空字典

2.集合中元素的增删改查 - 集合无法修改元素

1)查
for 变量 in 集合:
循环体
2)增
a. 集合.add(元素) - 集合中添加元素
b. 集合.update(序列) - 序列中元素全部添加到集合
3)删
a. 集合.remove(元素) - 删除集合中元素(元素不存在报错)
b. 集合.discard(元素) - 删除集合中元素(元素不存在不报错)

3.数学集合运算

python中的集合支持数学集合运算:&(交集)、|(并集)、-(差集)、^(对称差集)、>/<(判断真子集)

猜你喜欢

转载自blog.csdn.net/weixin_48479393/article/details/106819280
今日推荐