Python3数据结构总结(列表list,元组tuple,集合set,字典dict,堆栈stack,队列queue和遍历技巧)
文章目录
- 6种标准数据类型(列表,元组,集合,字典)的对比和初始化
- 列表增删改查等常用操作的方法总结
- 列表当做堆栈stack使用
- 列表当做队列queue使用
- 序列(字符串+列表+字典)的遍历技巧
- 字符串的遍历`for ii,ch in enumerate(string)`
- 列表的遍历`for index,value in enumerate(list)`
- 字典的遍历`for key,value in dict.items()`
- 多个序列的遍历`for element_a,element_b in zip(sequence_a,sequence_b)`
6种标准数据类型(列表,元组,集合,字典)的对比和初始化
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
6种数据类型对比
数据类型 | 标准用法 | 说明 | 数据是否可变 | 是否属于序列 |
---|---|---|---|---|
Number(数字) | a = 123.4 | 包含4种基本类型:int、float、bool、complex(复数) | ||
String(字符串) | str = ‘liukai’ | 字符串可以被索引和切片,但是不能更改 | 是 | |
List(列表) | list = [‘k’,‘a’,‘i’] |
列表可以被索引和切片,可以包含所有数据结构 列表切片的时候,可以指定步长,如letter[1:4:2] 有pop,append等方法 |
可变数据 | 是 |
Tuple(元组) | tuple = (‘liu’,‘kai’) |
tuple元素不可变,但是可以包含list列表可变对象 空元组初始化:tup0 = () 单元素元组初始化:tup1 = (1,) |
是 | |
Set(集合) | values = {a,b,c} |
基本功能是进行成员关系测试和删除重复元素 空集合使用set()创建,因为{ }表示空字典 |
可变数据 | |
Dictionary(字典) | dict = {‘name’:‘liukai’, ‘number’:12345} |
字典的元素是键值对,关键字不可变,且不能重复 创建空字典用{} |
可变数据 |
4种数据结构的初始化
>>> a = [] # list
>>> b = () # tuple
>>> c = set() # set
>>> d = {} # dict
列表增删改查等常用操作的方法总结
方法 | 描述 |
---|---|
list.append(x) | 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。 |
list.extend(L) | 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L,L是一个列表。 |
list.insert(i, x) | 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。 |
list.remove(x) | 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。 |
list.pop([i]) | 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。) |
list.clear() | 移除列表中的所有项,等于del a[:]。 |
list.index(x) | 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。 |
list.count(x) | 返回 x 在列表中出现的次数。 |
list.sort() | 对列表中的元素进行排序。 |
list.reverse() | 倒排列表中的元素。 |
list.copy() | 返回列表的浅复制,等于a[:]。 |
列表当做堆栈stack使用
用 append()
方法可以把一个元素添加到堆栈顶。
用不指定索引的pop()
方法可以把一个元素从堆栈顶释放出来。
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack
[3, 4, 5]
列表当做队列queue使用
在列表的最后添加或者弹出元素速度快,然而在列表里插入list.insert(0,x)
或者从头部list.remove(list[0])
弹出速度却不快(因为所有其他的元素都得一个一个地移动)。
方法一(使用insert
和remove
):
>>> list = [0,1,2,3]
# 指定位置插入
>>> list.insert(0,-1)
>>> list
[-1, 0, 1, 2, 3]
# 删除指定值
>>> list.remove(list[0])
>>> list
[0, 1, 2, 3]
方法二(import deque
):
核心是appendleft()
和popleft()
这两个函数。
>>> from collections import deque
>>> queue = deque([0,1,2,3])
# 在左侧操作
>>> queue.appendleft(-1)
>>> queue
deque([-1, 0, 1, 2, 3])
>>> queue.popleft()
-1
>>> queue
deque([0, 1, 2, 3])
# 在右侧操作
>>> queue.append(4)
>>> queue
deque([0, 1, 2, 3, 4])
>>> queue.pop()
4
>>> queue
deque([0, 1, 2, 3])
序列(字符串+列表+字典)的遍历技巧
在序列中遍历时,索引位置和对应值可以使用 enumerate()
函数同时得到,基本用法是
for index,value in enumerate(sequence):print(index,value)
字符串的遍历for ii,ch in enumerate(string)
>>> string = 'liukai'
>>> for ii,ch in enumerate(string):
... print(ii,ch)
...
0 l
1 i
2 u
3 k
4 a
5 i
列表的遍历for index,value in enumerate(list)
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
... print(i, v)
...
0 tic
1 tac
2 toe# 按照顺序遍历
>>> for v in sorted(['tic', 'tac', 'toe']):
... print(v)
...
tac
tic
toe
字典的遍历for key,value in dict.items()
>>> phone_num = {'liukai':188,'xumengsi':183}
>>> for key,value in phone_num.items():
... print(key,value)
...
liukai 188
xumengsi 183
多个序列的遍历for element_a,element_b in zip(sequence_a,sequence_b)
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
... print('What is your {0}? It is {1}.'.format(q, a))
...
What is your name? It is lancelot.
What is your quest? It is the holy grail.
What is your favorite color? It is blue.
参考文献
- Python3 基本数据类型 | 菜鸟教程
- Python3 数据结构 | 菜鸟教程
Python3数据结构总结(列表list,元组tuple,集合set,字典dict,堆栈stack,队列queue和遍历技巧)相关推荐
- 6.组合数据类型(列表list,元组tuple,集合set,字典dict)
1.数据类型概述 ① 工程项目中根据数据类型的特点,将python中的数据类型,区分为基本数据类型.组合数据类型以及复杂数据类型: 基本数据类型中又区分为字符串str类型,用来描述信息:整数类型int ...
- 5.1字符串和常用的数据结构(列表、元组、集合、字典)
字符串的使用 计算机中有许多数据都是以文本信息方式存在的 ,Python文本信息的方式就是以字符串类型表示的. 以下列举了字符串常用的使用方法: str1 = 'hello,worle!' #通过le ...
- python 列表、元组、集合、字典、循环遍历数据结构
python 列表.元组.集合.字典.数据结构的循环(整理自python文档) 列表-list-用方括号标注,逗号分隔的一组值 list 的 方法 对list添加.插入.删除.查找.排列.翻转 lis ...
- 【Python基础学习】基本数据结构:列表、元组、栈、字典、集合与队列
[Python基础学习]基本数据结构:列表.元组.栈.字典.集合与队列 Python的基本数据结构中,包含了列表.元组等一系列数组式数据结构,但各个结构各有不同.因此单独列出来,分析相同与不同 列表( ...
- python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换
python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...
- python列表转集合_Python数据类型 列表、元组、集合、字典的区别和相互转换
一:数据类型 列表.元组.集合.字典的区别 列表元组集合字典 英文 list tuple set dict 可变与不可变类型 可变类型 不可靠类型 可变类型 可变类型 可否重复 是 是 否 是 存储方 ...
- Python语法——列表、元组、集合、字典
Python语法--列表.元组.集合.字典 综述: 列表(List) [ ] 是一种有序和可更改 的集合.允许重复的成员. 元组(Tuple) ( ) 是一种有序且不可更改的集合.允许重复的成员. 集 ...
- 字符串、列表、元组、集合、字典综合对比
一.概念 字符串string:一系列字符,使用引号来创建"" 列表list:一系列按特定顺序排列的元素组成,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可[] 元组 ...
- python列表、元组、集合、字典、json相互转换以及其他基础入门
列表元组转其他 # 列表转集合(去重) list1 = [6, 7, 7, 8, 8, 9] set(list1) # {6, 7, 8, 9}#两个列表转字典 list1 = ['key1','ke ...
最新文章
- Ubuntu+PHP+Apache+Xdebug 使用方法
- SQL Server远程部署
- Android中的HTTP请求
- python开发个人博客_手把手教你用 Python + Flask 搭建个人博客
- ant target间的dependency
- jit即时编译_热点中的即时编译器(JIT)
- 老罗直播原定的12台半价哈弗F7仅售4台就下架?官方回应来了
- mysql的条件求和函数_mysql 带条件取count记录数,SUM()函数按条件求和
- 《编译原理》学习笔记 ·001【第一章:总论】
- 中国水龙头市场趋势报告、技术动态创新及市场预测
- php网站 小偷源代码
- mac终端命令大全介绍
- [计算流体力学] NS 方程的速度压力法差分格式
- openssl源代码方式安装以及简单的实验
- Java后台校验修改密码强度工具类
- 解决yay官方源下载慢问题
- 关于深度学习,可能是最容易读进去的科普
- 带你开发个转盘抽奖小游戏【附源码】
- 真王服务器文件,《真王》全国争霸赛开赛 3V3跨服登场
- 一个企业上线PLM系统前应该做些什么?杰信PLM
热门文章
- security工作笔记006---oauth2(spring security)报错method_not_allowed(Request method 'GET' not supported)解决
- PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
- FAR,NEAR区别
- llvm vs gcc 我被雷到了, 速度相差300多倍,你还用GCC吗!【转】
- win32开发(绘制bitmap)
- mysql中外键总结_mysql外键的一些总结
- java 注解原理_在java中实现组合注解原理分析(注解继承)
- 只能选择分卷文件的第一部分_【教程】分卷解压教程
- 分析dmp文件使用表空间_R语言使用贝叶斯层次模型进行空间数据分析
- dwr框架查看外放方法_先睹为快!IntelliJ IDEA v2019.3带来的新框架和新技术