Python基础——元组,字典,集合

简介: Python基础——元组,字典,集合

元组


一. 元组的应用场景


思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?


答:列表?列表可以一次性存储多个数据,但是列表中的数据允许更改。


num_list = [10, 20, 30]
num_list[0] = 100


一个元组可以存储多个数据,元组内的数据是不能修改的。


二. 定义元组


元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。


# 多个数据元组
t1 = (10, 20, 30)
# 单个数据元组
t2 = (10,)


注意:如果定义的元组只有一个数据,那么这个数据后面也好添加逗号,否则数据类型为唯一的这个数据的数据类型


t2 = (10,)
print(type(t2))  # tuple
t3 = (20)
print(type(t3))  # int
t4 = ('hello')
print(type(t4))  # str


三. 元组的常见操作


元组数据不支持修改,只支持查找,具体如下:


  • 按下标查找数据


tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0])  # aa


  • index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同。


tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa'))  # 0


  • count():统计某个数据在当前元组出现的次数。


tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb'))  # 2


  • len():统计元组中数据的个数。


tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1))  # 4


注意:元组内的直接数据如果修改则立即报错


tuple1 = ('aa', 'bb', 'cc', 'bb')
tuple1[0] = 'aaa'


但是如果元组里面有列表,修改列表里面的数据则是支持的,故自觉很重要。


tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2])  # 访问到列表
# 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
tuple2[2][0] = 'aaaaa'
print(tuple2)


字典


一. 字典的应用场景


字典,字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。


二. 创建字典的语法


字典特点:(和map很像)


符号为大括号


数据为键值对形式出现


各个键值对之间用逗号隔开


# 有数据字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
# 空字典
dict2 = {}
dict3 = dict()


注意:一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v。


三. 字典常见操作


3.1 增


写法:字典序列[key] = 值


注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
dict1['name'] = 'Rose'
# 结果:{'name': 'Rose', 'age': 20, 'gender': '男'}
print(dict1)
dict1['id'] = 110
# {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110}
print(dict1)


注意:字典为可变类型。


3.2 删


  • del() / del:删除字典或删除字典中指定键值对。


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
del dict1['gender']
# 结果:{'name': 'Tom', 'age': 20}
print(dict1)


  • clear():清空字典


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


3.3 改


写法:字典序列[key] = 值


注意:如果key存在则修改这个key对应的值 ;如果key不存在则新增此键值对。


3.4 查


3.4.1 key值查找


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1['name'])  # Tom
print(dict1['id'])  # 报错


如果当前查找的key存在,则返回对应的值;否则则报错。


3.4.2 get()


  • 语法


字典序列.get(key, 默认值)


注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。


  • 快速体验


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.get('name'))  # Tom
print(dict1.get('id', 110))  # 110
print(dict1.get('id'))  # None


3.4.3 keys()


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.keys())  # dict_keys(['name', 'age', 'gender'])


3.4.4 values()


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.values())  # dict_values(['Tom', 20, '男'])


3.4.5 items()


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.items())  # dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])


四. 字典的循环遍历


4.1 遍历字典的key


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key in dict1.keys():
    print(key)



4.2 遍历字典的value


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for value in dict1.values():
    print(value)



4.3 遍历字典的元素


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for item in dict1.items():
    print(item)



4.4 遍历字典的键值对


dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for key, value in dict1.items():
    print(f'{key} = {value}')



集合


一. 创建集合


创建集合使用{}或set(), 但是如果要创建空集合只能使用set(),因为{}用来创建空字典。


s1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
s3 = set('abcdefg')
print(s3)
s4 = set()
print(type(s4))  # set
s5 = {}
print(type(s5))  # dict



特点:(set)


  1. 集合可以去掉重复数据;


  1. 集合数据是无序的,故不支持下标


二. 集合常见操作方法


2.1 增加数据


  • add()


s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)  # {100, 10, 20}


因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。


  • update(), 追加的数据是序列。


s1 = {10, 20}
# s1.update(100)  # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)



2.2 删除数据


  • remove(),删除集合中的指定数据,如果数据不存在则报错。


s1 = {10, 20}
s1.remove(10)
print(s1)
s1.remove(10)  # 报错
print(s1)


  • discard(),删除集合中的指定数据,如果数据不存在也不会报错。


s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)


  • pop(),随机删除集合中的某个数据,并返回这个数据。


s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
print(s1)


2.3 查找数据


  • in:判断数据在集合序列


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


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


相关文章
|
1天前
|
C语言 Python
Python字典推导式:高效构建字典的利器
在Python编程中,字典推导式(Dictionary Comprehension)是一种强大的构造工具,它允许我们以简洁的方式从现有可迭代对象创建新的字典。通过字典推导式,我们可以轻松地对数据进行转换、过滤或重新组织,以符合特定的需求。本文将深入探讨字典推导式的概念、语法和应用场景,帮助读者更好地掌握这一高效的编程工具。
|
7天前
|
Python
掌握Python中的集合推导式
掌握Python中的集合推导式
|
7天前
|
Python
探索Python集合推导式的进阶应用
探索Python集合推导式的进阶应用
|
7天前
|
存储 数据处理 Python
深入剖析Python集合推导式的独特之处
深入剖析Python集合推导式的独特之处
|
7天前
|
Python
深入解析Python中的字典推导式
深入解析Python中的字典推导式
|
7天前
|
数据处理 Python
Python集合推导式的优雅与实用
Python集合推导式的优雅与实用
|
7天前
|
数据采集 算法 数据处理
Python集合推导式的深度探索与实际应用
Python集合推导式的深度探索与实际应用
|
7天前
|
数据处理 Python
Python集合推导式7
Python集合推导式7
|
7天前
|
数据处理 Python
Python集合推导式
Python集合推导式
|
7天前
|
存储 数据处理 Python
Python集合推导33
Python集合推导33

相关产品

  • 云迁移中心
  • http://www.vxiaotou.com