文章目录
前言
一、字典的相关操作
1.查单个
1.1 获取字典中某个键对应的值
1.2生活中的字典的运用
a.案例
2.字典的增删改
2.1 增 - 添加键值对
2.2 删 - 删除键值对
1)del 字典[键] - 删除字典中指定键对应的键值对
2)字典.pop(键) - 取走字典中指定键对应的值
2.3 改 - 修改某个键值对的值
二、元组
1.什么是元组(tuple)
1.1空元组
1.2只有一个元素的元组,唯一的元素后面必须加上逗号
1.3元组有序
1.4 在没有歧义的情况下,元组的()可以省略
2. 查 - 元组的查操作和列表的查操作一样
3.元组是不可变的列表
三. 集合
1.什么是集合
1.1 集合自带去重功能
1.2 空集合:set{}
1.3 集合无序
1.4 集合中的元素必须是不可变类型的数据
2. 数学集合运算:交集,并集,差集,对称差集,子集,真子集
总结
学习Python基础知识,不可忽略的重要一部分便是字典元组和集合这些存储结构。
本节内容将描述这些存储结构增删改查的相关操作。
'''
1)字典[键] - 获取字典中指定键对应的值,如果键不存在程序会报错
2)字典.get(键) - 获取字典中指定键对应的值,如果键不存在返回None
3)字典.get(键,默认值) - 获取字典中指定键对应的值,如果键不存在返回默认值
'''
class1 = {
'name': 'class1',
'address': '1教室',
'teacher': {'name': '李老师', 'age': 18, 'QQ': '154343454'},
'head_teacher': {'name': '张老师', 'age': 18, 'tel': '110'},
'students': [
{'name': 'stu1', 'age': 22, '专业': '数学', 'link_man': {'name': '张三', 'tel': '119'}},
{'name': 'stu2', 'age': 17, '专业': '计算机', 'link_man': {'name': '李四', 'tel': '2923'}},
{'name': 'stu3', 'age': 33, '专业': '材料', 'link_man': {'name': '王五', 'tel': '12302'}},
{'name': 'stu4', 'age': 25, '专业': '化学', 'link_man': {'name': '老王', 'tel': '39823'}},
{'name': 'stu5', 'age': 28, '专业': '计算机', 'link_man': {'name': '赵六', 'tel': '2029834'}},
{'name': 'stu6', 'age': 20, '专业': '工程', 'link_man': {'name': '钱七', 'tel': '92234'}}
]
}
# 1)获取讲师的名字
print(class1.get('teacher').get('name'))
print('<--------------------------SAN石--------------------------->')
# 2)获取班主任的电话
print(class1['head_teacher'].get('tel'))
print('<--------------------------SAN石--------------------------->')
# 3)获取所有学生的名字
num1 = class1['students']
for x in num1:
print(x.get('name'))
print('<--------------------------SAN石--------------------------->')
# 4)获取所有计算机学生的名字
num1 = class1['students']
for x in num1:
if x.get('专业') == '计算机':
print(x.get('name'))
print('<--------------------------SAN石--------------------------->')
# 5)获取未成年学生的联系人的电话
num1 = class1['students']
for x in num1:
if x.get('age') < 18:
print(x.get('name'))
'''
1)字典[键] = 值 - 如果键不存在就在字典中添加键值对,如果键已经存在则修改键对应的值
2)字典.setdefault(键,值) - 如果键不存在就在字典中添加键值对,如果键存在就不添加(也不会修改)
'''
dog = {'name': '财财', 'breed': '泰迪', 'age': 2}
print(dog)
dog['color'] = '白色'
print(dog) # {'name': '财财', 'breed': '泰迪', 'age': 2, 'color': '白色'}
dog.setdefault('weight', 10)
print(dog) # {'name': '财财', 'breed': '泰迪', 'age': 2, 'color': '白色', 'weight': 10}
dog = {'name': '财财', 'breed': '泰迪', 'age': 2}
print(dog)
dog['color'] = '白色'
print(dog) # {'name': '财财', 'breed': '泰迪', 'age': 2, 'color': '白色'}
dog.setdefault('weight', 10)
print(dog) # {'name': '财财', 'breed': '泰迪', 'age': 2, 'color': '白色', 'weight': 10}
dog = {'name': '财财', 'breed': '泰迪', 'age': 2}
print(dog)
dog['name'] = '大黄'
print(dog) # {'name': '大黄', 'breed': '泰迪', 'age': 2}
"""
容器;将()作为容器的标志,里面多个元素用逗号隔开:(数据1,数据2,数据3,...)
不可变的;元组是有序的
元素:没有要求
"""
t1 = ()
t2 = (10,)
print(t2)
t2 = (10,)
print(t2)
注:直接将多个元素用逗号隔开表示也是元组
t4 = 10, 20, 30
print(t4) # (10, 20, 30)
names = ('英雄联盟', '原神', '开心消消乐', '火影忍者')
print(names[0], names[-1]) # 英雄联盟 火影忍者
print(names[1::2]) # ('原神', '火影忍者')
for x in names:
print(x)
for x in range(len(names)):
print((x, names[x]))
for x, y in enumerate(names):
print(x, y)
列表中除了和增删改相关的操作外,其他操作元组全部都支持
'''
容器:将{}作为容器的标志,里面多个元素用逗号隔开:{数据1,数据2,数据3,...}
可变的;无序的
元素:a.不可变类型数据 b.元素必须是唯一(集合自带去重功能)
'''
names = ['张三', '李四', '张三', '王五', '王五', '张三', '大黄']
print(set(names)) # {'大黄', '王五', '李四', '张三'}
s1 = {}
print(type(s1)) #
print(({2, 3, 4} == {4, 3, 2})) # True
s1 = {10, 'abc', (20, 10)}
# s1 = {10, 'abc', [20, 10]} # 报错
s1 = {1, 2, 3, 4, 5, 6}
s2 = {4, 5, 6, 7, 8}
# 1)交集: 集合1 & 集合2 - 求两个集合的公共部分
print(s1 & s2) # {4, 5, 6}
# 2)并集: 集合1 | 集合2 - 求两个集合合并成一个集合
print(s1 | s2) # {1, 2, 3, 4, 5, 6, 7, 8}
# 3)差集: 集合1 - 集合2 - 集合1中没有包含在集合2中的元素
print(s2 - s1) # {8, 7}
print(s1 - s2) # {1, 2, 3}
# 4)对称差集: 集合1 ^ 集合2 - 获取两个集合非公共部分的所有元素
print(s1 ^ s2) # {1, 2, 3, 7, 8}
# 5)子集和真子集
# {1, 2, 3}的子集:{},{1},{2},{3},{1, 2},{1,3},{2, 3},{1, 2, 3}
# {1, 2, 3}的真子集:{},{1},{2},{3},{1, 2},{1,3},{2, 3}
# 集合1 >= 集合2 - 判断集合2是否是集合1的子集
# 集合1 > 集合2 - 判断集合2是否是集合1的真子集
print({100, 200, 300, 400} > {1, 2}) # False(判断是否是真子集而不是比较大小)
print({1, 2, 300, 400} > {1, 2}) # True
以上内容就是关于在Python中字典、元组、集合的增删改查基础用法,我们要学会不同的数据使用其适合的相关存储结构,这样才能使数据更便于操作