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)


相关文章
|
17天前
|
存储 开发者 Python
Python中的collections模块与UserDict:用户自定义字典详解
【4月更文挑战第2天】在Python中,`collections.UserDict`是用于创建自定义字典行为的基类,它提供了一个可扩展的接口。通过继承`UserDict`,可以轻松添加或修改字典功能,如在`__init__`和`__setitem__`等方法中插入自定义逻辑。使用`UserDict`有助于保持代码可读性和可维护性,而不是直接继承内置的`dict`。例如,可以创建一个`LoggingDict`类,在设置键值对时记录操作。这样,开发者可以根据具体需求定制字典行为,同时保持对字典内部管理的抽象。
|
3天前
|
程序员 索引 Python
06-python数据容器-set(集合)入门基础操作
06-python数据容器-set(集合)入门基础操作
|
4天前
|
存储 索引 Python
python学习7-元组
python学习7-元组
|
4天前
|
Python
python学习8-集合
python学习8-集合
|
7天前
|
存储 安全 索引
「Python系列」Python元组
Python中的元组(Tuple)是一种不可变的有序序列类型,它允许你存储多个不同类型的元素,并且这些元素在元组中是按照特定的顺序排列的。一旦一个元组被创建,你就不能修改它(即不能添加、删除或更改元组中的元素),这使得元组成为一种非常安全的数据结构,因为一旦它们被创建,就不
15 1
|
8天前
|
安全 Python
python字典的内置方法
Python字典主要方法包括:`keys()`(返回所有键)、`values()`(返回所有值)、`items()`(返回所有键值对)、`get()`(安全取值,键不存在时返回默认值)、`setdefault()`(设置默认值)、`update()`(合并字典)、`pop()`(删除并返回值)、`clear()`(清空字典)、`copy()`(浅拷贝)、`fromkeys()`(新建字典并设置默认值)、`popitem()`(随机删除键值对)。
8 0
|
17天前
|
存储 Java 程序员
【Python】6. 基础语法(4) -- 列表+元组+字典篇
【Python】6. 基础语法(4) -- 列表+元组+字典篇
40 1
|
17天前
|
存储 Python
python基础篇: 详解 Python 字典类型内置方法
python基础篇: 详解 Python 字典类型内置方法
26 1
|
22天前
|
C语言 Python
Python字典推导式:高效构建字典的利器
在Python编程中,字典推导式(Dictionary Comprehension)是一种强大的构造工具,它允许我们以简洁的方式从现有可迭代对象创建新的字典。通过字典推导式,我们可以轻松地对数据进行转换、过滤或重新组织,以符合特定的需求。本文将深入探讨字典推导式的概念、语法和应用场景,帮助读者更好地掌握这一高效的编程工具。
|
28天前
|
Python
掌握Python中的集合推导式
掌握Python中的集合推导式

热门文章

最新文章