【Python零基础】19天从零开始学Python——第七、八、九天 元组、字典、集合

第七天元组
B站链接:https://www.bilibili.com/video/BV1gf4y1S7Y9

学习目的:

一、元组的学习(元组的应用场景、定义元组、元组常见的操作)
二、字典的学习(字典的应用场景、字典的语法、列表的常用操作、字典的遍历循环)
三、集合

一、元组的定义

元组用于:可以存储多个数据,用元组操作不可修改的数据,而列表存储可修改的数据
不支持修改,支持查询
格式:(),里面用“,”隔开,最好都是相同数据

# 1、定义多个数据的元组
t1 = (1,2,3)
print(t1,type(t1))  # (1, 2, 3) <class 'tuple'>

# 2、定义单个数据的元组
t1 = (1,)  # (1,) <class 'tuple'>
print(t1,type(t1))

注意:元组定义单个数据的时候,必须加“,”,否则为原有数据的数据类型

# t1 = (1)  # 1 <class 'int'>
# t1 = ('qqq')  # qqq <class 'str'>
t1 = ('qqq',)  # ('qqq',) <class 'tuple'>
print(t1,type(t1))

二、元组的常见操作之查找

元组数据不支持修改,只支持查找
1、按下标查找数据
2、index(数据),若存在返回下标,不存在,报错
3、count(查找的数据)统计某个数据在当前元组出现的次数
4、len(元组名)统计元组数据的个数

1、按照下标查找数据

t1 = ('aa','bb','cc','bb')
# 1、下标
print(t1[0])  # aa

2、按照函数查找数据

index()、count()、len()

# 2、index()
print(t1.index('aa'))  # 0
# 3、count()
print(t1.count('aa'))  # 1
print(t1.count('bb'))  # 2
# 4、len()
print(len(t1))  # 4

三、元组数据之修改

一般情况是不修改的,工作中尽可能不要修改!!!

直接修改,一般会报错,(元组数据不支持修改)

t1 = ('aa','bb','cc','bb')
t1[0] = 'qqq'  # 'tuple' object does not support item assignment

想要修改,修改嵌套在元组里面的列表!!

t2 = ('aa','bb',['cc','bb'])
print(t2[2][0])  # cc
t2[2][0] = 'Tom'
print(t2)  # ('aa', 'bb', ['Tom', 'bb'])

四、总结

1、不能修改的数据,用元组来存储
2、单个数据存储,加","
3、元组常用的操作方法:

1、按下标查找数据
2、index(数据),若存在返回下标,不存在,报错
3、count(查找的数据)统计某个数据在当前元组出现的次数
4、len(元组名)统计元组数据的个数

4、一般不能修改元组数据,可以修改嵌套在元组里面的列表数据

第八天字典

一、字典

1、了解字典

1、字典的应用场景:多个数据,无论后期数据如何变化,只需按照对应的键的名字查找数据即可。字典数据和数据顺序无关,不支持下标。
2、字典的形式:字典里的数据以键值对的形式出现
3、字典的语法dict = {’’:’’,’’:’’,’’:’’}
4、常见操作
5、字典的循环遍历

2、创建字典的语法

1、创建有数据的字典 name的值Tom;age:20;gender:男

dict1 = {'name':'Tom','age':20,'gender':'男'}
print(dict1)  # {'name': 'Tom', 'age': 20, 'gender': '男'}

2、创建空字典(两种方式)

dict2 = {}
print(type(dict2))  # <class 'dict'>

dict1 = dict()
print(type(dict1))  # <class 'dict'>

二、字典的常见操作(字典为可变类型)

- 增

字典序列[key] = 值

1、新增数据必须是一个键值对数据
2、语法:字典序列[key] = 值
3、key存在则修改key对于的值,若key不存在,则增加此键值对

dict = {'name':'Tom','age':20,'gender':'男'}
# dict['name'] = 'Jerry'  # {'name': 'Jerry', 'age': 20, 'gender': '男'}
dict['birthday'] = '12月5日'  # {'name': 'Tom', 'age': 20, 'gender': '男', 'birthday': '12月5日'}
print(dict)

- 删除

del 字典序列、del(字典序列[‘key’])、clear()

1、删除字典或删除字典指定键值对,语法:del 字典序列 del(字典序列) del 字典序列[key]
2、清空字典clear(),语法:字典序列.clear()
3、[],里面写:‘key’
4、删除字典序列没有的数据,报错

# 1、增:增加一个键值对,语法:字典序列[key] = 值
dict = {'name':'Tom','age':20,'gender':'男'}
# dict['name'] = 'Jerry'  # {'name': 'Jerry', 'age': 20, 'gender': '男'}
dict['birthday'] = '12月5日'  # {'name': 'Tom', 'age': 20, 'gender': '男', 'birthday': '12月5日'}
print(dict)
# 2、删除
dict1 = {'name':'Tom','age':20,'gender':'男'}
# del(dict1)  # name 'dict1' is not defined
# del dict1  # name 'dict1' is not defined
# 删除指定的键值对
del dict1['name']  # {'age': 20, 'gender': '男'}
# del dict1['names']  # KeyError: 'names'没有数据
print(dict1)
# 3、clear()
dict1.clear()
print(dict1)  # {}

- 改

字典序列[key] = 值

1、语法:字典序列[key] = 值
2、与"增"类似,若有该键值对,进行修改,若无,进行增加

dict3 = {'name':'Tom','age':20,'gender':'男'}
# dict3['name'] = 'Jerry'  # {'name': 'Jerry', 'age': 20, 'gender': '男'}
dict3['birthday'] = '10月4日'  # {'name': 'Tom', 'age': 20, 'gender': '男', 'birthday': '10月4日'}
print(dict3)

- 查

字典序列[‘key’]、get()、keys()、values()、items()

1、按照key值查找,若key存在,则返回对应的值,否则报错
2、函数get()、keys()、values()、items()
-get(),如果查找的key不存在返回第二个参数(默认值),如果省略第二个参数,则返回None
语法:字典序列.get(key,默认值)
- keys(),查找字典中所有的key,返回可迭代对象(可以用for遍历的对象)
- values(),查找字典中的所有key的值value,返回可迭代对象
- items():查找字典中的所有键值对,返回可迭代对象,里面的数据都是元组

# 1、[key]
dict4 = {'name':'Tom','age':20,'gender':'男'}
print(dict4['name'])  # Tom
# print(dict4['names'])  # 报错,KeyError: 'names'
# 2、函数
# get()
dict5 = {'name':'Tom','age':20,'gender':'男'}
print(dict5.get('name'))  # Tom
print(dict5.get('id',100))  # 100
print(dict5.get('id'))  # None
# keys()
print(dict5.keys())  # 可迭代的对象dict_keys(['name', 'age', 'gender'])
# values()
print(dict5.values())  # dict_values(['Tom', 20, '男'])
# items()
print(dict5.items())  # dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])

三、字典的循环遍历

遍历字典的key

# 遍历字典的key
dict = {'name':'Tom','age':20,'gender':'男'}
for key in dict.keys():
    print(key)

name
age
gender

# 遍历字典的value
for value in dict.values():
    print(value)

Tom
20

# 3、遍历字典的元素
for item in dict.items():
    print(item)

(‘name’, ‘Tom’)
(‘age’, 20)
(‘gender’, ‘男’)

# 4、遍历字典的键值对
for key,value in dict.items():
    print(f'{key}={value}')

name=Tom
age=20
gender=男

四、总结

1. 定义字典

dict1 = {‘name’:‘Tom’,‘age’:20,‘gender’:‘男’}
dict2 = {}
dict3 = dict()

2. 常见操作

  • 增 或 修改

若有该键值对,进行修改,若无,进行增加一个键值对
语法: 字典序列[key] = 值

  • 查找

1)按照key值查找,若key存在,则返回对应的值,否则报错
2)函数:get()、keys()、values()、items()

  • 删除

1)删除字典或删除字典指定键值对
语法:del 字典序列 del(字典序列) del 字典序列[key]
2)清空字典clear()
语法:字典序列.clear()

第九天集合

一、集合

不允许重复数据出现的时候,用集合!!

创建集合

1、创建集合使用{}和set(),创建空集合使用set(),因为()是tuple,[]是list,{}是dict
2、集合的打印是乱序的,不支持下标
3、有去重的效果

# 输出是乱序的,集合是没有顺序的,不支持下标
s1 = {10,20,30,40,50}
print(s1)  # {40, 10, 50, 20, 30}

# 集合的特点,去重
s1 = {10,10,10,40,50}
print(s1)  # {40, 10, 50}

# 使用set()
s2 = {10,20,10,40,50}
print(set(s2))  # {40, 10, 20, 50}

# s3 = set()<class 'set'>
s3 = {}  # <class 'dict'>
s3 = ()  # <class 'tuple'>
print(type(s3))

二、集合的常见操作

- 增加数据

add()和update()

1、add(),只能增加单一数据,追加已有数据,集合不变;追加没有数据,集合改变
2、update(),只能增加序列(这里指的是列表),否则报错

# 1、add()增加单一数据
s1 = {10,20}
s1.add(100)
print(s1)  # {100, 10, 20}
s1.add(20) # 增加一样的,不变
print(s1)  # {100, 10, 20}
# s1.add([11,22])  # 若追加多个数据,报错
print(s1)  # unhashable type: 'list'不相容的类型

# 2、update()增加的是序列
s1 = {10,20}
# s1.update([11,22])
print(s1)  # {10, 11, 20, 22}
# s1.update(1) # 报错,int函数不可迭代的,'int' object is not iterable

- 删除数据

remove()、discord()、pop()

1、remove()删除集合中的指定数据,若数据不存在,报错
2、discard()删除集合中的指定数据,若数据不存在,不会报错
3、pop()随机删除集合中的某个数据,并
返回这个数据

s1 = {10,20,30,40,50}
s2 = {'lisa','lili','wangm'}

# 1、remove()
# print(s1.remove(10))  # None
# s1.remove(10)
# s2.remove('lilis')  # KeyError: 'lilis'
# print(s2)  # {'lisa', 'wangm'}

# 2、discard()
# s2.discard('lilis')  # discard()没错误提示
print(s2)

# 3、pop()
num = s1.pop()
print(num)  # 40
print(s1)  # {10, 50, 20, 30}
# print(s1.pop())  # 返回值任一

- 查找数据

in 和 not in

in :判断数据在集合序列
not in:判断数据不在集合序列

s1 = {10,20,30,40,50}
print(10 in s1)  # True
print(1 not in s1)  # True

三、总结

1、不允许重复数据出现的时候,用集合!!
2、集合的常见操作

  • 增加数据

1、add(),只能增加单一数据,追加已有数据,集合不变;追加没有数据,集合改变
2、update(),只能增加序列(这里指的是列表),否则报错

  • 删除数据

1、remove()删除集合中的指定数据,若数据不存在,报错
2、discard()删除集合中的指定数据,若数据不存在,不会报错
3、pop()随机删除集合中的某个数据,并
返回这个数据

  • 查找数据

in :判断数据在集合序列
not in:判断数据不在集合序列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值