IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Python内置容器 -> 正文阅读

[数据结构与算法]Python内置容器

容器

一.含义:

一种把多个元素组织在一起的数据结构,通俗说容器是用来存放比容器本身小的包装体。

线性表(有序的容器结构)

  • 数组—array(由连续的内存空间组成)
  • 链表—list(不连续的内存空间组成的逻辑结构,双向链表头尾相互连接查询效率高、单向链表尾相互连接可节约内存空间)
  • 栈—stack(先进后出FILO,后进先出LIFO的结构,程序主运行在主栈中)
  • 队列—queue(先进先出FIFO,后进后出LILO的结构)

二.类型:

1.list—列表,Python中的list列表底层是靠双向链表结构实现的

(1)list的定义

  • 通过弱数据类型语言特点,直接赋值,变量名建议不使用list
变量 = [元素]

  • 使用list全局函数实现,但不允许直接接受多个值,某些情况下list可省略
变量 = list([元素])

(2)list内部分参数的使用

  • 通过下标(从0开始计数)获取某个元素的值

  • 列表长度的获取,全局函数len
len(变量)

  • 修改列表内的值
#通过下标访问,进行修改
变量[欲修改元素的位置] = "欲修改内容"

  • 列表遍历(一个一个获取值,可通过fou或while进行遍历)
#用for迭代进行遍历,以变量user为例
user = [1,8,6,9,4]
for i in user:
	print(i)

#需要自建下标(小于变量长度)进行遍历,以变量user为例
user = [1,8,6,9,4]
i = 0
while i < len(user):
	print(user[i])
	i += 1

(3)list常见常用方法

  • append——在列表尾部增加新元素新内容
变量.append(欲增加元素)

  • ?insert——在列表特定位置包括末尾插入新元素新内容
变量.insert(欲插入元素的位置,欲增加元素)

?

?

  • ?clear——清除列表,无参数参照
变量.clear()

?

  • ?remove——通过列表中元素本身删除
变量.remove(欲移除元素)

?

  • ?pop——删除列表指定位置内容,默认删除最后一个
变量.pop(欲删除元素的位置)

  • ?count——统计列表中元素内容出现次数
变量.count(欲统计的元素)

?

  • ?index——查找列表中元素内容,获取元素下标,返回某个值的第一个下标
变量.index(欲查找的元素)

  • reverse——反转列表
变量.reverse()

  • ?copy——复制列表,覆盖表内内容
变量1 = 变量2.copy()

  • extend——继承列表,能力的扩展,列表合并
变量名1.extend(变量名2)

  • ?sort——列表内容排序,不支持不同类型内容排序,必须保证数据类型一致,可改变排序方法
变量.sort()    #默认升序
变量.sort(reverse=True/False)  #借助reverse改变排序方法,True为降序,False为升序

2.set—集合,利用Hash(散列表)实现,类似数组+列表的结构,无序、集合内不能重复,如有重复内容会自动去重,所以set被广泛应用在去重方面

?(1)set的定义

  • 通过弱数据类型方式,集合内至少要有一个元素,不允许为空(若为空,类型则不再是集合,变为字典)
变量 = {元素}

  • ?使用set全局函数实现,将列表转化为集合,允许空集合
变量 = ([元素])
变量 = ({元素})

?(2)set内部分参数的使用

  • set的遍历(集合内元素无序,无下标定义,只能用for循环进行遍历)
#以for循环迭代进行遍历,以变量a为例
a = {1,5,7,8,9}
for i in a:
	print(i)

  • ?可使用len函数获取长度
#以变量a为例
len(变量)

?(3)set常见常用方法

  • add—添加元素到集合,无序
变量.add(欲增加元素)

  • ?clear—清空集合
变量.clear()

  • ?copy—复制集合,覆盖集合内容
变量1 = 变量2.copy()

  • ?union—并集,两个集合相连,除去重复的部分
变量1.union(变量2)

  • intersection—交集,两个集合共有的区域
变量1.intersection(变量2)

  • difference—差集,前者减去后者中重复的项,显示出前者剩下的项
变量1.difference(变量2)

  • ?discard—删除集合内元素
变量.discard(欲删除的元素)

  • ?pop—随机移除集合内元素
变量.pop()

?3.tuple—元组,不可变的数据类型,不支持增、删、改

(1)tuple的定义

变量 = (元素)
变量 = tuple((元素))

注意:在元组定义中只需要定义一个元素时,系统会默认你的操作是在提升其的优先级,此时储存元素的变量是非元组型,若要达到创建只定义一个元素的元组可在元素后加一个逗号

?

?(2)tuple常见常用方法

  • count—统计元组中元素出现次数
变量.count(欲统计的元素)

?

  • index—查找元素,返回该元素第一次出现的下标
变量.index(欲查找的元素)

?

?4.dict—字典,Hash表包装的键值对,一键一值,键与键不能冲突重复

(1)定义

变量 = {"键1":"键值1","键2":"键值2","键3":"键值3"}
或
变量 = {"键1":"键值1","键2":"键值","键":"[键值3的多个元素]"}    #多个元素时可用列表等包含

?(2)dict的部分参数的使用

  • 访问字典的内容、键值
变量["欲访问的键"]
或
变量.get("欲访问的键")  

?

  • ?修改键值,不能修改对象名
变量["键名"] = 欲进行的操作

??

  • ?增加对象
变量["欲添加的键"] = "欲添加的键值"

  • ?删除对象
del 变量["欲删除的键"]

?

  • dict的遍历?
#以变量a为例

#遍历键
a = {"year":2022,"month":6,"day":8}
for key in a:
	print(key)

#遍历键值对
a = {"year":2022,"month":6,"day":8}
for key in a:
	print(key,a[key])

?

a = {"year":2022,"month":6,"day":8}
for key in a.keys():
	print(key,a.get(key))

?

a = {"year":2022,"month":6,"day":8}
for item in a.items():
	print(item[0],item[1])

?

?

??(3)dict的常见常用方法(clear、copy、get等方法参考上文)

  • keys,values—获取所有的键(对象)和键值
变量.keys()
变量.values()

  • ?items—以键值对获取内容,成对显示
变量.items()

?

  • ?pop—任意删除,通过键删除键值对
变量.pop("欲删除的键")

  • ?popitem—从后至前进行删除
变量.popitem()

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:42:57  更:2022-04-09 18:46:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:04:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码