python数据结构包括什么_Python学习之数据结构

Python 的数据结构有哪些?

Python 有四种数据结构,分别是列表、元组、字典、集合,每种数据结构都有其适合的应用场景,下面将分别描述各种数据结构的特点。

列表

定义:列表是一个有序的、可修改的、可重复的、元素以逗号分隔开的、以中括号包围的序列,可通过 [] 和 list() 定义。

创建:num_list = [1, 2, 3],str = list(),str 其实是一个空列表,相当于 str = [] 。

特点:列表内的数据是可变的,可嵌套的(甚至可以嵌入其他数据结构)。

使用场景:列表的使用场景非常广泛,因为是一个可重复的、可修改的有序序列,因此列表可以满足大部分的日常使用场景。

常用操作:

num_list = [1, 2, 3]

# 新增

num_list.append(4)

# 删除

num_list.pop() # 删除指定索引上的元素并返回,索引默认为-1

num_list.remove() # 从左到右删除指定索引上的元素并返回

# 修改

num_list.insert() # 在指定索引位置插入指定的元素

# 查询

num_list.index() # 从左到右返回指定元素的索引

元组

定义:元组是一个有序的、不可修改的、可重复的、元素以逗号分隔开的、以小括号包围的序列,可通过 () 和 tuple() 定义

创建:tuple01 = tuple(), tuple02 = (), 创建一个单元素元组,需要特别注意小括号内的逗号,如果小括号内没有逗号,python不会给变量创建一个tuple,而是常见一个常量

>>>tuple01 = (1)

>>>tuple01

1

>>>print(type(tuple01))

>>>tuple02 = (1,)

>>>tuple02

(1,)

>>>print(type(tuple02))

>>>tuple03 = ('a')

>>>tuple03

'a'

>>>print(type(tuple01))

特点:元组中的数据是被“写保护”的,是不可变的,但这个不可变只是针对元组,如果元素本身可变,即使在元组中,元素依然是可变的。

使用场景:由于元组的不可更改性,所以元组中的数据被“写保护”,可以联想到场景应用,软件中比较重要的数据可以用元组存储

常用操作:由于元组的特点,因此元组没有新增、修改、删除的操作

tuple01 = (1, 'a', 2, 'b', 2)

# 查询

tuple01.index() # 从左到右返回指定元素的索引

# 计数

tuple01.count() # 返回指定元素的个数

字典

定义:字典是一个无序的、可修改的、元素呈键值对形式的、以逗号分隔、以大括号包围的序列

创建:dict01 = {}, dict02 = {"a": 1, "b": 2}

特点:字典是 python 的基础数据中唯一一个有映射关系的数据类型;因为字典是无序的,所以字典没有索引;因为字典没有索引,所以字典以键取值;因为字典以键取值,所以字典的键唯一且不可更改,因为字典的键不可更改,所以列表和字典等可变类型的数据不可以作为字典的键

使用场景:任何需要使用键值对形式的数据,都可以使用字典存储

常用操作:字典可以修改、删除、查询以及判断

# 修改

info[‘name’]=‘garden’ # 通过键名进行修改,如果键不存在,则创建键,并赋值

# 删除

del info[‘name’] # 删除指定的键和值

info.clear() # 清空字典

# 查询

info[‘name’] # 通过键名查找

info.keys() # 返回一个包含字典所有键的列表

info.values() # 返回一个包含字典所有值的列表

info.items() # 返回字典键值的列表,且呈元组的形式

info.setdefault(‘name’, ‘Garden’) # 设置默认,如果键存在,则返回值;如果不存在,则创建键,值默认为 None,值也可以指定

# 判断

"a" in dict01 # 判断dict01是否存在key-“a”,有则返回True,否则返回False

dict01.__contains__("b") # 判断dict01是否存在key-“b”,有则返回True,否则返回False

集合

定义:集合是一个无序的、不重复的、以大括号包围的元素集合

创建:set01 = {1, 2},set02 = set(),空集合只能用set()创建,不能用{},因为这会创建空字典

特点:集合的元素是不能重复的,元素是唯一的,和字典的key类似

使用场景:根据集合的特点,对数据去重或者交集、并集操作,集合会更适合

常用操作:

# 交集

set01 & set02 # 交集,两个集合公共部分

# 并集

set01 | set02 # 并集,两个集合合并

# 差集

set01 - set02 # 差集,只有前项有,不存在后项的元素

# 对称差集

set01 ^ set02 # 对称差集,只存在 a 或 b 中的元素

# 添加

add # 为集合无规律添加元素

update # 添加元素,且可以不同类型,并用逗号分开

# 删除

remove # 删除指定的元素,当指定元素不存在时会报错

discard # 删除指定的元素,当指定元素不存在时不会报错

pop # 随机删除一个元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值