Python基础之数据结构详解


Posted in Python onApril 28, 2021

一、列表

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来

示例:
list01 = ['a','b','c']

1.1 列表更新元素

一个列表是可以储存不同的类型的数据结构,并且修改的新元素也不一定需要和原来的元素类型一致,但是要注意的是,更新列表的索引必须是已存在的索引,不能对超出列表的索引更新元素

1.2 列表增加元素

增加元素的方法:

1.append方法:在列表的最后增加一个元素。

list01 = ['a', 'b', 'c']
list01 .append('d')
print(list01)
list01 .append(['e', 'f'])
print(list01)
执行结果:
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', ['e', 'f']]

2.extend方法:在列表的最后增加多个元素。

list01 = ['a', 'b', 'c']
list01 .extend(['d', 'e', 'f'])
print(list01)
执行结果:
['a', 'b', 'c', 'd', 'e', 'f']

3.insert方法:在列表的中间插入一个元素。

list01 = ['a', 'b', 'c']
list01 .insert(1,'d')
print(list01)
执行结果:
['a', 'd', 'b', 'c']

1.3 列表删除元素

删除元素的方法:

1.pop方法:pop(index)可以删除指定位置的元素,并且把这个元素作为返回值返回,如果不指定位置则默认选择最后一个元素。

list01 = ['a', 'b', 'c']
list01 .pop()
print(list01)
list01 .pop(0)
print(list01)
执行结果:
['a', 'b']
['b']

2.remove方法:可以根据元素内容对元素进行删除。

list01 = ['a', 'b', 'c']
list01.remove('a')
print(list01)
执行结果:
['b', 'c']

3.del方法:还可以使用关键字“del”根据索引删除列表的元素。

list01 = ['a', 'b', 'c']
print(list01)
del list01 [0]
print(list01)
执行结果:
['a', 'b', 'c']
['b', 'c']

1.4 列表的其他操作

1.index方法:查找元素在列表中的索引位置。

list01 = ['a', 'b', 'c']
print(list01 .index('a'))
print(list01 .index('b'))
执行结果:
0
1

2.reverse方法:反转队列,反转原来的队列,并且没有返回值。

list01 = ['a', 'b', 'c']
list01 .reverse()
print(list01)
执行结果:
['c', 'b', 'a']

3.count方法:统计某个元素在列表中的次数。

list01 = ['a', 'b', 'c','b', 'c']
print(list01 .count('a'))
print(list01 .count('b'))
执行结果:
1
2

4.sort方法:队列表进行排序,还可以自定义排序方式。

list02 = [1,88,66,22]
list02.sort()
print(list02)
执行结果:
[1, 22, 66, 88]

二、元组

创建一个元组,只要把逗号分隔的不同的数据项使用小括号括起来
如果元组中只有一个元素,还需要元素后加上“,”,才能定义一个元组

tuple01 = ('a','b','c')

2.1 删除元组

由于元组是不能修改的,所以元组也不能单独删除,只能删除整个元组

1.del方法:删除整个元组

tuple01 = ('a','b','c')
del tuple01 
print(tuple01)
执行结果:
发生异常: NameError
name 'tuple01' is not defined
发生异常是正确的,说明tuple01 已经被删除了

2.2 元组的其他操作

1.count方法:用于统计元素在元组中出现的次数

tuple02 = ('a', 'b', 'c','b', 'c')
print(tuple02.count('a'))
print(tuple02.count('b'))
执行结果:
1
2

2.index方法:用于查找元素在元组中的索引位置

tuple02 = ('a', 'b', 'c','b', 'c')
print(tuple02.index('a'))
print(tuple02.index('b'))
执行结果:
0
1

3.len方法:计算元组元素个数

tuple02 = ('a', 'b', 'c','b', 'c')
print(len(tuple02))
执行结果:
5

4.max,min方法返回元组中最大,最小的值

tuple02 = (1, 88, 66, 22)
print(max(tuple02))
print(min(tuple02))
执行结果:
88
1

三、字典

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中。

dict01 = {'a':'深圳','b':22,'c':22.22}

3.1 字典删除元素

1.del方法:使用关键字“del”根据键删除列表的元素

dict01 = {'a':'深圳','b':22,'c':22.22}
print(dict01)
del dict01['a']
print(dict01)
执行结果:
{'a': '深圳', 'b': 22, 'c': 22.22}
{'b': 22, 'c': 22.22}

3.2 字典的其他操作

1.clear方法:用于清空字典里的所有元素,使字典变为空字典。

dict01 = {'a':'深圳','b':22,'c':22.22}
print(dict01)
dict01.clear()
print(dict01)
执行结果:
{'a': '深圳', 'b': 22, 'c': 22.22}
{}

2.copy方法:返回一个具有相同键值对的新字典。

dict01 = {'a':'深圳','b':22,'c':22.22}
print(dict01)
dict01.copy()
print(dict01)
执行结果:
{'a': '深圳', 'b': 22, 'c': 22.22}
{'a': '深圳', 'b': 22, 'c': 22.22}

3.fromkeys方法:用于创建一个新字典,用序列中的元素作为字典的键,第二个参数为字典所有参数对应的初始值。

tuple01 = ("name","age","city")
hunan1 = dict.fromkeys(tuple01)
human2 = dict.fromkeys(tuple01,20)
print(hunan1)
print(human2)
执行结果:
{'name': None, 'age': None, 'city': None}
{'name': 20, 'age': 20, 'city': 20}

4.get方法:返回键对应的值,如果字典不存在对应的键则返回none

dict01 = {'a': '深圳', 'b': 22, 'c': 22.22}
print(dict01.get('a'))
print(dict01.get('d'))
执行结果:
深圳
None

5.keys方法:返回一个列表,里面包含了字典里的所有键

dict01 = {'a': '深圳', 'b': 22, 'c': 22.22}
print(dict01.keys())
执行结果:
dict_keys(['a', 'b', 'c'])

6.valuse方法:返回一个列表,里面包含了字典的所有值

dict01 = {'a': '深圳', 'b': 22, 'c': 22.22}
print(dict01.values())
执行结果:
dict_values(['深圳', 22, 22.22])

7.items方法:返回一个列表,里面包含了所有键值对的列表

dict01 = {'a': '深圳', 'b': 22, 'c': 22.22}
print(dict01.items())
执行结果:
dict_items([('a', '深圳'), ('b', 22), ('c', 22.22)])

还可以使用items方法来遍历字典

dict01 = {'a': '深圳', 'b': 22, 'c': 22.22}
for k, v in dict01.items():
    print(k,v)
执行结果:
a 深圳
b 22
c 22.22

四、集合

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

set01 = {1, 2, 2, 2, 2, 3, }
print(set01)
set02 = {1, 2, 3, }
print(set02)
执行结果:
{1, 2, 3}
{1, 2, 3}

4.1 集合添加元素

1.add方法:为集合添加一个元素

set01 = {1, 2, 3}
set01.add(4)
set01.add(3)
print(set01)
执行结果:
{1, 2, 3, 4}

4.2 集合删除元素

1.remove方法:为集合删除一个元素

set01 = {1, 2, 3}
set01.remove(1)
print(set01)
执行结果:
{2, 3}

五、其他操作

1.clear()	移除集合中的所有元素
	2.copy()	拷贝一个集合
	3.difference()	返回多个集合的差集
	4.difference_update()	移除集合中的元素,该元素在指定的集合也存在。
	5.discard()	删除集合中指定的元素
	6.intersection()	返回集合的交集
	7.intersection_update()	返回集合的交集。
	8.isdisjoint()	判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
	9.issubset()	判断指定集合是否为该方法参数集合的子集。
	10.issuperset()	判断该方法的参数集合是否为指定集合的子集
	11.pop()	随机移除元素
	12.symmetric_difference()	返回两个集合中不重复的元素集合。
	13.symmetric_difference_update()	移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集
	14.合中不同的元素插入到当前集合中。
	15.union()	返回两个集合的并集
	16.update()	给集合添加元素

到此这篇关于Python基础之数据结构详解的文章就介绍到这了,更多相关python数据结构详解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现倒计时的示例
Feb 14 Python
Python下的Mysql模块MySQLdb安装详解
Apr 09 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
python实现查询苹果手机维修进度
Mar 16 Python
python比较两个列表大小的方法
Jul 11 Python
用Python写一段用户登录的程序代码
Apr 22 Python
使用Python获取并处理IP的类型及格式方法
Nov 01 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
appium+python adb常用命令分享
Mar 06 Python
使用keras2.0 将Merge层改为函数式
May 23 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
python3 re返回形式总结
Nov 20 Python
Python基础详解之邮件处理
python实现黄金分割法的示例代码
Apr 28 #Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
You might like
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP 图片水印类代码
2012/08/27 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
深入探究Django中的Session与Cookie
2017/07/30 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python生成器generator用法示例
2018/08/10 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
简单的JAVA编程面试题
2013/03/19 面试题
大学自主招生推荐信
2014/05/10 职场文书
后备干部培训方案
2014/05/22 职场文书
计算机软件专业求职信
2014/06/10 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
总经理岗位职责
2015/02/04 职场文书
消费者理赔投诉书
2015/07/02 职场文书
学校远程教育工作总结
2015/08/11 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS