python_基础知识04

Python数据结构精讲
本文深入探讨Python中的元组、集合和字典等数据结构,讲解它们的特点与应用场景,包括元组的不可变性、集合的去重特性及字典的键值对存储方式。

本篇文章主要讲的是:元组,集合,字典。在python中讲到list列表,讲了一些列表的常规操作。列表虽然在我们开发的时候能够达到我们一些想要的效果。但是还是存在着一些问题的。因为我们定义了列表存储数据但是呢。我们不能防止别人通过代码进行列表中数据的修改一旦其他人对列表数据进行改动[append/insert/..]->造成当前程序的BUG。现在我们迫切需要一种和列表类似,但是不能修改数据的组合数据类型:元组。

元组:tuple,可以存放一组有顺序的可以重复的不可改变的数据!就是一种简化的列表

元组主要是用于数据处理的:增加、删除[删除元组本身]、修改、查询。元组是不可以增加或修改数据的。

声明元组:

t1 = tuple()   声明空元组

t2 = ()      声明空元组

t3 = (1,2,3,4,5) 声明包含元素的元组

t4 = (“h”)   --> t4 = (“h”,)   如果只有一个元素,添加一个逗号分隔

t5 = (1)   --> t5 = (1,)  如果只有一个元素,添加一个逗号分隔

程序中,如果出现了一组数据,在使用过程中,不允许修改的情况下优先选择:元组 tuple 其次选择:列表 list

查询相关函数,可以直接操作,如:len()查看元组中元素的个数运算相关:元组自己没有提供count/index之外的操作外部有一个默认的函数sorted可以针对元组进行排序排序注意:使用系统默认排序~保证排序的数据他们的数据类型是一致的!

元组:tuple,只有两个可以操作函数[count()/index()]可以存放多个有顺序的可以重复的不能改变的数据!

集合:set

需求场景:我们需要存放一组数据,但是不希望存放重复的数据!用户的账号!

集合:通过哈希(hash)算法在一个容器中存放多个没有顺序的不可以重复的数据

声明一个集合:

s1 = set()    <class ‘set’>

s2 = {“a”}    <class ‘set’>

s3 = {}       <class ‘dict’>

集合是用于存储和处理数据的,常见的操作函数都有那些?

dir(set)

'add'增加, 'clear'清空, 'copy'复制, 'difference'两个集合之间求差集, 'difference_update'求差集并且用不一样的数据重新给自己赋值, 'discard', 'intersection'求交集, 'intersection_update'求交集并给自己赋值, 'isdisjoint', 'issubset', 'issuperset', 'pop'随机删除一个, 'remove'指定删除某个数据, 'symmetric_difference', 'symmetric_difference_update', 'union'求并集, 'update'求并集并给自己赋值

集合:python中内置的组合数据类型之一:set表示存储多个没有顺序的不可以重复的数据;通过hash算法让添加的数据不重复[剔重]!

例如:

需求:从多个数据中,提取一个数据使用【购买商品】

    以前:如果使用的是列表存储数据~通过下标/索引/编号提取某个数据

       如果使用的是元组存储数据~在不修改数据的前提下,可以通过下标提取数据

       如果使用集合存储数据~通过成员运算符进行判断是否存在,使用这个数据

需求:购买商品~ 用户输入:商品名称,购买指定的商品

    商品:f1 = [“鱼香肉丝”, 10, 20, “古代皇家御品,如今百姓家常”]

           f2 = [“回锅肉”, 12, 18, “本来肉香肉色,再现色香味全”]

    foods = [f1, f2]

       用户:输入~回锅肉fd ->得到f2?

   for x in foods:

        if fd in x[0]:

             food = x[0]  # 用户要购买是食物

字典:

通过一个名词->表示一个事物

称呼->人

姓名->人

目录->内容  字典/映射

python中的字典:dict可以存储多个key:value 键值对数据的组合数据类型常见操作:声明字典

d1  = dict()    # 空字典

d2 = {}         # 空字典

数据常见操作:增加、删除、修改、查询

clear'清空, 'copy'复制, 'fromkeys'通过制定的key生成一个值为None的字典, 'get'根据key获取对应的值, 'items'获取所有的k:v键值对, 'keys'获取所有的键, 'pop'根据key值删除一个键值对, 'popitem'随机删除一个键值对, 'setdefault'增加一个数据,如果数据存在~修改, 'update', 'values获取所有的值

# 字典中,增加数据

f[key] = value

f.setdefault(key, value)

f.update(key, value)

 

# 删除数据:删除一个键值对

f.pop(key) 删除制定的key:value键值对

f.popitem() 随机删除一个键值对

def f[key] 删除制定的key:value键值对

 

# 修改数据

f[key] = value

f.update({key, value})

 

# 查询数据

v = f[key]

v = f.get(key)

 

# 遍历数据

for k in f.keys():# 直接循环字典中的key数据

print(k, f.get(k)) # value数据通过key数据获取

for k, v in f.items():# 直接循环字典中的key和value数据

print(k, v)

组合数据类型

列表list

[append/insert/extend/pop/remove/clear/count/index/sort/reverse]

[len/max/min/sorted]

元组tuple

[count/index]

[len/max/min/sorted]

集合set

[add/pop/remove/discard/clear/difference/intersection/union]

[len/max/min/sorted]

    字典dict

[get/pop/popitem/clear/keys/values/items/update/setdefault]

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值