文章目录

  • 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])弹出速度却不快(因为所有其他的元素都得一个一个地移动)。

方法一(使用insertremove

>>> 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.

参考文献

  1. Python3 基本数据类型 | 菜鸟教程
  2. Python3 数据结构 | 菜鸟教程

Python3数据结构总结(列表list,元组tuple,集合set,字典dict,堆栈stack,队列queue和遍历技巧)相关推荐

  1. 6.组合数据类型(列表list,元组tuple,集合set,字典dict)

    1.数据类型概述 ① 工程项目中根据数据类型的特点,将python中的数据类型,区分为基本数据类型.组合数据类型以及复杂数据类型: 基本数据类型中又区分为字符串str类型,用来描述信息:整数类型int ...

  2. 5.1字符串和常用的数据结构(列表、元组、集合、字典)

    字符串的使用 计算机中有许多数据都是以文本信息方式存在的 ,Python文本信息的方式就是以字符串类型表示的. 以下列举了字符串常用的使用方法: str1 = 'hello,worle!' #通过le ...

  3. python 列表、元组、集合、字典、循环遍历数据结构

    python 列表.元组.集合.字典.数据结构的循环(整理自python文档) 列表-list-用方括号标注,逗号分隔的一组值 list 的 方法 对list添加.插入.删除.查找.排列.翻转 lis ...

  4. 【Python基础学习】基本数据结构:列表、元组、栈、字典、集合与队列

    [Python基础学习]基本数据结构:列表.元组.栈.字典.集合与队列 Python的基本数据结构中,包含了列表.元组等一系列数组式数据结构,但各个结构各有不同.因此单独列出来,分析相同与不同 列表( ...

  5. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换

    python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...

  6. python列表转集合_Python数据类型 列表、元组、集合、字典的区别和相互转换

    一:数据类型 列表.元组.集合.字典的区别 列表元组集合字典 英文 list tuple set dict 可变与不可变类型 可变类型 不可靠类型 可变类型 可变类型 可否重复 是 是 否 是 存储方 ...

  7. Python语法——列表、元组、集合、字典

    Python语法--列表.元组.集合.字典 综述: 列表(List) [ ] 是一种有序和可更改 的集合.允许重复的成员. 元组(Tuple) ( ) 是一种有序且不可更改的集合.允许重复的成员. 集 ...

  8. 字符串、列表、元组、集合、字典综合对比

    一.概念 字符串string:一系列字符,使用引号来创建"" 列表list:一系列按特定顺序排列的元素组成,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可[] 元组 ...

  9. python列表、元组、集合、字典、json相互转换以及其他基础入门

    列表元组转其他 # 列表转集合(去重) list1 = [6, 7, 7, 8, 8, 9] set(list1) # {6, 7, 8, 9}#两个列表转字典 list1 = ['key1','ke ...

最新文章

  1. Ubuntu+PHP+Apache+Xdebug 使用方法
  2. SQL Server远程部署
  3. Android中的HTTP请求
  4. python开发个人博客_手把手教你用 Python + Flask 搭建个人博客
  5. ant target间的dependency
  6. jit即时编译_热点中的即时编译器(JIT)
  7. 老罗直播原定的12台半价哈弗F7仅售4台就下架?官方回应来了
  8. mysql的条件求和函数_mysql 带条件取count记录数,SUM()函数按条件求和
  9. 《编译原理》学习笔记 ·001【第一章:总论】
  10. 中国水龙头市场趋势报告、技术动态创新及市场预测
  11. php网站 小偷源代码
  12. mac终端命令大全介绍
  13. [计算流体力学] NS 方程的速度压力法差分格式
  14. openssl源代码方式安装以及简单的实验
  15. Java后台校验修改密码强度工具类
  16. 解决yay官方源下载慢问题
  17. 关于深度学习,可能是最容易读进去的科普
  18. 带你开发个转盘抽奖小游戏【附源码】
  19. 真王服务器文件,《真王》全国争霸赛开赛 3V3跨服登场
  20. 一个企业上线PLM系统前应该做些什么?杰信PLM

热门文章

  1. security工作笔记006---oauth2(spring security)报错method_not_allowed(Request method 'GET' not supported)解决
  2. PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
  3. FAR,NEAR区别
  4. llvm vs gcc 我被雷到了, 速度相差300多倍,你还用GCC吗!【转】
  5. win32开发(绘制bitmap)
  6. mysql中外键总结_mysql外键的一些总结
  7. java 注解原理_在java中实现组合注解原理分析(注解继承)
  8. 只能选择分卷文件的第一部分_【教程】分卷解压教程
  9. 分析dmp文件使用表空间_R语言使用贝叶斯层次模型进行空间数据分析
  10. dwr框架查看外放方法_先睹为快!IntelliJ IDEA v2019.3带来的新框架和新技术