序列和集合和字典

序列

知识点

序列的含义:有下标索引,元素有序,可重复的一类数据容器

序列的分类:  列表   元组   字符串

序列的特点:有下标索引,有序,可以重复,支持while循环,支持切片操作(最大的特点)

切片的格式: 序列[起始索引:结束索引:步长]

        切片解释:

                开始索引(可以留空,默认从头开始)

                结束索引(可以留空,默认到尾结束)

                 步长(默认为1,正数代表从左至右,负数代表从右至左)

列表切片示例:

#元组及字符串的切片操作相同

# 列表的切片操作
# 定义非空列表
my_list = ('a', 'b', 'c', 'd', 'e')
# 打印大列表
print(my_list) 
print(my_list[:])
print(my_list[::])
# 截取abc
print(my_list[0:3:1])
print(my_list[0:3:])
print(my_list[:3:])
print(my_list[:3])
# 截取edcb
print(my_list[:-5:-1])
print(my_list[-1:-5:-1])
print(my_list[4:0:-1])
# 翻转列表
print(my_list[::-1])
print(my_list[4::-1])
# 截取bcd
print(my_list[1:4])
print(my_list[1:4:])
print(my_list[1:4:1])

综合练习:

# 定义列表存储多个手机号
phone_list = ['15812324567', '13823124567', '15845612327', '13812321212', '15812321232']
# 把中间4位隐藏
# 方式1
for phone in phone_list:
    # print(phone)
    new_phone = phone[:3] + '****' + phone[-4:]
    print(new_phone)
print('---------------------------------')
# 方式2
for phone in phone_list:
    new_phone = phone.replace(phone[3:7], "****", 1)
    print(new_phone)

集合

集合的定义

知识点

定义空集合:集合名=set()    注意:不能使用空的{},它代表的是字典

定义非空集合:集合名={元素1,元素2,元素3,...}    注意:集合中不要嵌套可变类型

示例
# 定义空集合
set1 = set()
print(set1)
# 空集合不能是{},它代表的是字典
test = {}
print(test, type(test))
# 定义非空集合
my_set = {'a', 'b', 'c', 'd', 'e'}
print(my_set, type(my_set))
my_set1 = {('a', 'b', 'c'), ('d', 'e')}
print(my_set1, type(my_set1))
my_set2 = {('a', 'b', 'c'), ('a', 'b', 'c')}
print(my_set2, type(my_set2))

集合的增删改查

知识点

增:添加指定的元素      集合名.add(元素)

删:删除指定的元素      集合名.remove(元素)

     删除随机元素         集合名.pop()

     清空集合所有元素    集合名.clear()

改:

        修改集合a的内容为它和集合b的差集:集合a.difference_update(集合b)

         修改集合a的内容为它和集合b的并集:集合a.update(集合b)

查:查看集合中元素个数:len(集合名)

示例
# 定义空列表
name_set = set()
# 1.集合的添加
name_set.add('张三')
name_set.add('李四')
name_set.add('张三')
name_set.add('王五')
name_set.add('赵六')
print(name_set)
# 2.集合的删除功能
name_set.remove('赵六')
print(name_set)
name_set.pop()
print(name_set)
name_set.clear()
print(name_set)
# 3.集合的修改功能
s1 = {1, 2, 3}
s2 = {1, 5, 6}
# 修改s1,保留s2的差集
s1.difference_update(s2)
print(s1)
print(s2)
# 修改s1,保留s2的并集
s1.update(s2)
print(s1)
print(s2)
# 4.集合的查询
print(len(s1))
print(len(s2))

集合的遍历

知识点:
集合是不支持下标索引,不支持重复元素,所以集合是无序的,也不支持while循环
​
因为for循环又叫遍历循环,最大特点就是遍历容器,所以集合容器支持for循环
示例:
# 定义集合
name_set = {'张三', '李四', '张三', '王五'}
# for循环遍历集合
for name in name_set:
    print(name)

集合的特点

        可以存储多个元素

        支持for循环

        不能存储可变类型

        不支持下标索引(无序)

        不支持while循环

        不支持重复

        支持修改

字典

字典的定义

知识点

定义非空字典:  字典名={}  或者   字典名=dict()

定义非空字典:  字典名={k1:v1,k2:v2,k3:v3,...}   注意:字典每个元素都是一个键值对

示例

#定义空字典
d1={}
print(d1,type(d1))
d2=dict()
print(d2,type(d2))
#定义非空字典
d3={'郭靖':'黄蓉','杨过':'小龙女','胡斐':'苗若兰',}
print(d3,type(d3))
#字典的嵌套
d4={
    '郭靖': {'语文':88,'数学':89,'英语':99,'综合':94 },
    '杨过':{'语文':85,'数学':92,'英语':87,'综合':91 },
    '胡斐':{'语文':90,'数学':89,'英语':80,'综合':85 }
}
print(d4,type(d4))
print(d4['杨过'])
print(d4['杨过']['综合'])

字典根据key找值

知识点

根据key找值方式1:  value=字典名[key]

根据key找值方式2:  value=字典名.get(key)

示例

# 定义非空字典
d3 = {'郭靖': '黄蓉', '杨过': '小龙女', '胡斐': '苗若兰', }
print(d3, type(d3))
# 字典的嵌套
d4 = {
    '张三': {'语文': 88, '数学': 89, '英语': 99, '综合': 94},
    '李四': {'语文': 85, '数学': 92, '英语': 87, '综合': 91},
    '王五': {'语文': 90, '数学': 89, '英语': 80, '综合': 85}
}
# 输出杨过的另一半
print(f"杨过的另一半是:{d3['杨过']}")
print(f"杨过的另一半是:{d3.get('杨过')}")
# 张三的所有考试成绩
print(f"张三的所有考试成绩为:{d4['张三']}")
print(f"张三的所有考试成绩为:{d4.get('张三')}")
# 李四的数学成绩
print(f"李四的数学成绩为:{d4['李四']['数学']}")
print(f"李四的数学成绩为:{d4.get('李四').get('数学')}")

字典的增删改查

知识点

        添加新元素: 字典名[new_key]=value

        删除元素:字典名.pop(key)

        清空元素:字典名.clear

          添加新元素: 字典名[old_key]=value

        根据key找值方式1:  value=字典名[key]

        根据key找值方式2:  value=字典名.get(key)

        查看元素的个数:len(字典名)

        查询所有的健:字典名.keys()

        查询所有的值:字典名.values()

        查询所有的键值对:字典名.items()

示例

# 定义空字典
score_dict = {}
print(score_dict)
# 字典的增加
score_dict['王五'] = 90
score_dict['李四'] = 80
print(score_dict)
# 字典的删除
score_dict.pop('李四')
print(score_dict)
# 字典的更改
score_dict['王五'] = 100
score_dict['李四'] = 95
score_dict['钱九'] = 95
print(score_dict)
# 字典的查询
print(score_dict['王五'])
print(len(score_dict))
print(score_dict.keys())
print(score_dict.values())
print(score_dict.items())

修改和添加注意事项

"""
key不能重复,重复不报错,修改对应的值
字典的添加和修改是同一个格式:字典名[key]=value
key已经存在,修改对应的值
key不存在,添加对应的元素
"""
# key重复的情况,报黄警告
score_dict = {'张三': 88, '李四': 85, '张三': 89}
print(score_dict)  # {'张三': 89, '李四': 85}
# 演示修改元素
score_dict['李四'] = 95
print(score_dict)  # {'张三': 89, '李四': 95}
# 演示添加元素
score_dict['王五'] = 75
print(score_dict)  # {'张三': 89, '李四': 95, '王五': 75}

字典的遍历

知识点

字典不支持下标索引,不支持重复元素,所以也不支持while循环

for循环又叫遍历循环,最大特点就是遍历所有容器,所以字典容器支持for循环

示例

"""
字典的核心就是key,主要操作的就是key
字典key不支持重复,字典不支持下标索引
也不支持while循环
"""
# 定义非空字典
name_dict = {
    '张三': {'语文': 88, '数学': 89, '英语': 99, '综合': 94},
    '李四': {'语文': 85, '数学': 92, '英语': 87, '综合': 91},
    '王五': {'语文': 90, '数学': 89, '英语': 80, '综合': 85}
}
#  默认遍历获取的就是key,再根据key找值
for name in name_dict:
    score = name_dict[name]
    print(name, score)
print('-------------------------------------------')
# 先获取所有的key,再根据key找值
for name in name_dict.keys():
    score = name_dict[name]
    print(name, score)
print('-----------------------------------')
# 方式3 先获取所有的键值对items(默认放到元组中),然后再根据索引找
for item in name_dict.items():
    print(item[0], item[1])

字典的特点

字典特点总结

        可以存储多个元素

        支持for循环

        key不支持可变类型(value可以是任意类型)        

        不支持下标索引

        不支持while循环

        key不支持重复(value支持重复)

        支持修改

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值