python中的数据结构比较
作者:楷楷 发布时间:2023-07-20 10:58:35
列表:list=[val1,val2]
1.列表中的每一个元素都是可变的,有序的,可以被查看索引的。
可变意味着可以对每个元素进行增删改查的操作,列表中的元素可以是Python中的任何对象
(1)创建列表的方法:
一.是用方括号[]直接赋值,赋一组以逗号隔开的值;
newlist=[1,2,3]
print(newlist) #[1, 2, 3]
print(type(newlist)) #查看类型为:<class 'list'>
二.是调用list函数进行定义。
tup=('q','w','e')
print(type(tup)) #<class 'tuple'>
change_tup=list(tup)
print(type(change_tup))#<class 'list'>
(2)增加操作
一.通过append方法,可以将元素添加到列表的末尾
change_tup.append('f')
print(change_tup) #['q', 'w', 'e', 'f']
二.利用insert可以将元素插入到列表的指定位置
change_tup.insert(0,'a')
print(change_tup) #['a', 'q', 'w', 'e', 'f']
三.extend将指定序列的元素依次追加到列表的尾部(合并),
不会去重复内容
addlist=['b','c','a']
change_tup.extend(addlist)
print(change_tup) #['a', 'e', 'f', 'b', 'c', 'a']
(3)删除操作
一.pop用于删除除并返回指定索引处的元素
change_tup.pop(1)
print(change_tup) #['a', 'w', 'e', 'f']
二.remove用于按值删除元素,它找到第一个符合要求的值
然后将其从列表中删除
change_tup.remove('w')
print(change_tup) #['a', 'e', 'f']
三.del删除整个列表或列表的数据,del 是 python 内置功能,
不是列表独有的
del change_tup[-1]
print(change_tup)#['a', 'e', 'f', 'b', 'c']
(4)查找操作
index(元素名):获取查询元素在列表中的索引值
count(元素名):统计某元素在列表中出现的次数
if 某元素 in 列表名:判断某元素是否在列表内
(5)修改操作
list[index] = value
reverse():反转列表
sort():从原列表上按从小到大排序
sorted(列表名)生成新列表按从小到大进行排序
(6)特殊操作
max(列表名):最大值
min(列表名):最小值
字典:dict={key1:val1,key2:val2}
1.字典中的值是可变的,无序的。
2.字典中的数据必须以键值对的形式出现
3.键不可重复,值可重复
4.字典中键(key)是不可变的,为不可变对象,不能进行修改;而值(value)是可以修改的,可以是任何对象。
(1)增加操作
变量名[key]=value 通过 key 添加 value 值,如果 key 存在则覆盖
setdefault(key,default_value) 指定 key 和 value,如果 key 存在则覆盖
(2)删除操作
pop 弹出,返回并删除指定键对应的值
popitem 随机弹出一个键值元组,这里随机的原因是因为字典无序
clear 清空字典
(3)修改操作
变量名[key]=value 通过 key 添加 value 值,如果 key 存在则覆盖
update() 传递一个字典,如果 key 相同则覆盖,没有的 key 则添加
(4)查找操作
keys 返回一个包含字典所有 key 的列表
values 返回一个包含字典所有 vaule 的列表
get 以键取值,如果指定键不存在,默认返回 None,可以指定返回内容
update 以字典格式更新指定键的内容,如果键不存在,创建键和值
items 返回字典键值呈元组形式的格式
元组:tuple=(val1,val2)
1.元组是不可修改,但可以被查看索引的
2.空的tuple可以记为(),若只有一个元素的tuple记为(1,)
(1)枚举
遍历的时候使用:重新生成下标和元素的元组
t=(1,2,3)
for i in enumerate(t):
print(i)#(0, 1)(1, 2)(2, 3)
(2)查找操作
index(元素名) 从左往右返回第一个遇到的指定元素的索引,如果没有,报错
count(元素名) 返回元组当中指定元素的个数
(3)应用场景
字符串格式化需要使用元组
函数返回多个返回值时返回的是元组类型
一些内置函数的返回值是元组类型
集合:set={val1,val2}
1.集合中是不可变的,无序的。
1.集合更接近数学上集合的概念。集合中每个元素都是无序的、不重复的任意对象。
2.集合不能被切片,不能被索引,除了做集合运算之外,集合元素可以被添加和删除。
(1)增加操作
add(elem)
update([elem]/(elem)/'elem')
(2)删除操作
remove(elem)
discard(elem)
pop()
clear()
(3)查找操作
in
not in
(4)使用场景
去重
5.其他方法
1.查各个数据长度:
len(类型名)
2.数据类型是否可变
可变定义:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变
可变:列表,字典 ,集合
不可变:数字,字符串,元组
3.列表,元组,集合的解包
a,*b = [1,2,3] a=1,b=2,3
*a,b = [1,2,3] a=1,2 b=3
以列表为列子,其他两种类型同理
4,列表,元组的合并和重复
l1=[1,2]
l2=[3,4]
print(l1+l2)
print(l1*2)
总结
以上所述是小编给大家介绍的python中的数据结构比较,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://segmentfault.com/a/1190000019152228
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 分布式编程的难点在于:1.服务器之间的通信,主节点如何了解从节点的执行进度,并在从节点之间进行负载均衡和任务调度;2.如何让多个服务器上的进
- 一、为什么使用Python进行网络爬虫?由于Python语言十分简洁,使用起来又非常简单、易学,通过Python 进行编写就像使用英语进行写
- 前言任务描述:当前有一份excel表格数据,里面存在缺失值,需要对缺失的数据到es数据库中进行查找并对其进行把缺失的数据进行补全。excel
- 前言最近突然对爬虫有了一点兴趣,所以打算学一下爬虫,但是在安装使用一些库时,遇到了一些不小的麻烦,对于我来说,最麻烦的就是配置环境了,老是有
- 程序测试是展现BUG存在的有效方式,但令人绝望的是它不足以展现其缺位。——艾兹格·迪杰斯特拉(Edsger W. Dijkstra)算法审查
- 最近有个需求,用多线程比较合适,但是我需要每个线程的返回值,这就需要我在threading.Thread的基础上进行封装import thr
- 楔子随着自媒体时代,现在对视频的处理变得越来越常见。我们可以使用Adobe的一些专业工具,但是效率不高;如果只是对视频进行一些简单的处理的话
- 哪个Python版本?当我提及Python,所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3
- <?php session_start(); $_SESSION['username']="zhuzhao&
- A.动态页面第一步:创建转向控制页面,创建网站默认的首页文件(通常为"index.asp"或"default.
- 字符串是Python中最常用的数据类型1、创建字符串1.1 使用 ’ ’ 或 " &quo
- 在之前的一篇文章我们介绍了《如何向PHP数组中头部和尾部添加元素》既然有添加元素,那么就有删除元素,今天这篇文章详细介绍如何删除数组中的头部
- 1、爬取目标网站:业绩预告_数据中心_同花顺财经(ps:headers不会设置的可以看这篇:Python 用requests.get获取网页
- 本文实例讲述了PHP编程实现多维数组按照某个键值排序的方法。分享给大家供大家参考,具体如下:实现对多维数组按照某个键值排序的两种解决方法(a
- 如题,在控制台运行python manage.py startapp sales 建立一个应用报错异常1.应用名不能包含下划线等字符 所以a
- 在生产环境上,一般会使用比较健壮的Web服务器,如Apache来运行我们的应用。如果我们的Web应用是采用Python开发,而且符合WSGI
- python读取npy文件时,太大不能完全显示,其解决方法当用python读取npy文件时,会遇到npy文件太大,用print函数打印时不能
- 记得很早以前看到过这样的一段介绍:想象你在逛街边的一家书店,如果最终你没有购买任何图书就直接离开了,店长并不会知道你来过。但是如果你买了书,
- Server对象提供对服务器上访问的方法和属性.大多数方法和属性是作为实用程序的功能提供的。语法:Server.property|metho
- 英文版:File -> settings -> Editor -> File Encodings首先打开设置:文件 -&g