百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Python数据类型—列表

wptr33 2025-08-05 21:48 4 浏览

序列是python中最基本的数据,python中有六个序列的内置类型,但最常见的是列表和元组。序列中的每个元素都分配一个位置,用数字表示,即是该元素的索引值,第一位元素的索引值是0,第二位是1,以此类推。

列表(list)

列表是一个数据的集合,用方括号【】表示,里面的数据之间用逗号隔开,集合内可以放任何数据类型,可对集合进行增删改查操作。

>>> list_a=['红色','蓝色','绿色','紫色',500]#list是内置函数,不能直接用来做变量名,可以适当的做一下调整。

列表的索引取值

索引:列表中每个元素在列表中的位置称为索引(index),可以通过索引值来取对应位置上的值。索引值从左往右是从0开始,以此类推。负索引是从列表尾部开始往前数,从-1开始。索引值超过其列表长度就会报错。

>>> list_a=['红色','蓝色','绿色','紫色',500]
>>> list_a[0]#取索引为0的列表元素
'红色'
>>> list_a[1]#取索引为1的列表元素
'蓝色'
>>> list_a[-1]#取索引为-1的列表元素,即列表中最后一位元素
500
>>> list_a[4]#取列表的第四位元素
500
>>> list_a[5]#因为没有第五位,超出了取值范围,就会报错
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    list_a[5]
IndexError: list index out of range

列表的切片

切片:列表切片是处理列表的部分元素,也就是把整个列表切开,列表可以根据一个范围来取值。切片是两个范围之间取值,且后面的数取不到,即切片的区间为左闭右开。切片时范围超过列表长度也没关系。切片时还可以指定步长(step),步长不能为0,默认为1。(闭区间是指端点包含在内,开区间是指端点不包含在内)

ps:定义的列表里面的数据是用逗号隔开,列表切片表达式中间是用冒号隔开,完整的列表切片表达式含有两个冒号(以下案例第九个)。

>>> list_a[0:3]#取前三位。
['红色', '蓝色', '绿色']
>>> list_a[0:100]#索引值超出范围会取出列表的全部数据
['红色', '蓝色', '绿色', '紫色', 500]
>>> list_a[0:500]#同理,500是索引值,不是数据
['红色', '蓝色', '绿色', '紫色', 500]
>>> list_a[0:4]#左闭右开
['红色', '蓝色', '绿色', '紫色']
>>> list_a[0:4:2]#步长为2,两个数据取第一个,依次类推
['红色', '绿色']
>>> list_a[4:1:-1]#步长为负数,实际效果就是将序列进行反转
[500, '紫色', '绿色']

下面的方法演示会以上面定义好的列表为基础

列表的增删改查(增加删除修改查找)这些方法的调用格式:要操作的列表.方法名

1. 添加:append,extend,insert这三个方法

list.append:在列表末尾单个添加新的对象。

list.extend:批量添加,也即向列表追加另一个列表。

list.insert:将某个元素插放到列表的指定定位置。

>>> list_a.append('黑色')#单个添加
>>> list_a
['红色', '蓝色', '绿色', '紫色', 500, '黑色']
>>> list_a.extend(['橙色','灰色'])#批量添加,注意括号的区别
>>> list_a
['红色', '蓝色', '绿色', '紫色', 500, '黑色', '橙色', '灰色']
>>> list_a.insert(1,'银色')#指定索引为1的位置添加,参数1为索引,参数2为要添加的内容
>>> list_a
['红色', '银色', '蓝色', '绿色', '紫色', 500, '黑色', '橙色', '灰色']

2. 删除:pop,remove,clear这三个方法

.pop:移除列表中的一个元素,一次移除一个(默认移除列表中最后一个元素),并且返回该元素的值。

list.remove:移除列表中指定位置的元素

list.clear:一次性清空列表中所有的元素

>>> list_a#列表
['红色', '银色', '蓝色', '绿色', '紫色', 500, '黑色', '橙色', '灰色']
>>> list_a.pop()#默认移除最后一位,返回该元素的值
'灰色'
>>> list_a.pop(1)#移除指定位置(索引)元素,返回该元素的值。参数为索引
'银色'
>>> list_a.remove('蓝色')#移除指定元素,不返回值
>>> list_a#最终结果
['红色', '绿色', '紫色', 500, '黑色', '橙色']
>>> list_a.clear()#一次性清空列表,没有参数
>>> list_a
[]#空列表

注意:删除是不可逆的,删除前要考虑好哦

3. 替换:利用索引取值,可以直接替换。

>>> list_b=['鸡','鱼','羊','牛']#定义列表
>>> list_b[0]='虾'#利用索引取值,可以直接替换
>>> list_b
['虾', '鱼', '羊', '牛']

4.查找:index方法(可以根据元素,找到元素的索引值)

>>> list_a.index(500)#查找列表元素为500的索引值
4

列表脚本操作符

列表对+和*的操作符与字符串相似,+用于组合列表,*用于重复列。

>>> list_a=[1,2,3,]#定义列表
>>> list_b=[4,5,6]
>>> list_a+list_b#组合列表
[1, 2, 3, 4, 5, 6]
>>> list_a*3#重复列表
[1, 2, 3, 1, 2, 3, 1, 2, 3]

如果是直接两个列表相加,记得重新赋值,否则不会改变原值。

>>> list_c=list_a+list_b
>>> list_c
[1, 2, 3, 4, 5, 6]

列表的其他方法

count:可以统计列表里面某个元素出现的次数,也属于查找。

sort:对列表中元素进行从小到大排序,采用timsort算法排序。

以下的方法自己试一下,因为后面我都做了详细的作用讲解,不再一一赘述。

>>> list_a=[3,4,5,6,7,8]#定义列表
>>> list_b=list_a.copy()#将复制的列表赋值给list_b
>>> list_b
[3, 4, 5, 6, 7, 8]
>>> list_a.reverse()#反向列表,不用重新赋值,会在原有的列表上进行
>>> list_a
[8, 7, 6, 5, 4, 3]
>>> list_a.count(3)#统计该元素的个数
1
>>> list_a.sort()#从小到大排序,也不用重新赋值。
>>> list_a
[3, 4, 5, 6, 7, 8]


相关推荐

redis的八种使用场景

前言:redis是我们工作开发中,经常要打交道的,下面对redis的使用场景做总结介绍也是对redis举报的功能做梳理。缓存Redis最常见的用途是作为缓存,用于加速应用程序的响应速度。...

基于Redis的3种分布式ID生成策略

在分布式系统设计中,全局唯一ID是一个基础而关键的组件。随着业务规模扩大和系统架构向微服务演进,传统的单机自增ID已无法满足需求。高并发、高可用的分布式ID生成方案成为构建可靠分布式系统的必要条件。R...

基于OpenWrt系统路由器的模式切换与网页设计

摘要:目前商用WiFi路由器已应用到多个领域,商家通过给用户提供一个稳定免费WiFi热点达到吸引客户、提升服务的目标。传统路由器自带的Luci界面提供了工厂模式的Web界面,用户可通过该界面配置路...

这篇文章教你看明白 nginx-ingress 控制器

主机nginx一般nginx做主机反向代理(网关)有以下配置...

如何用redis实现注册中心

一句话总结使用Redis实现注册中心:服务注册...

爱可可老师24小时热门分享(2020.5.10)

No1.看自己以前写的代码是种什么体验?No2.DooM-chip!国外网友SylvainLefebvre自制的无CPU、无操作码、无指令计数器...No3.我认为CS学位可以更好,如...

Apportable:拯救程序员,IOS一秒变安卓

摘要:还在为了跨平台使用cocos2d-x吗,拯救objc程序员的奇葩来了,ApportableSDK:FreeAndroidsupportforcocos2d-iPhone。App...

JAVA实现超买超卖方案汇总,那个最适合你,一篇文章彻底讲透

以下是几种Java实现超买超卖问题的核心解决方案及代码示例,针对高并发场景下的库存扣减问题:方案一:Redis原子操作+Lua脚本(推荐)//使用Redis+Lua保证原子性publicbo...

3月26日更新 快速施法自动施法可独立设置

2016年3月26日DOTA2有一个79.6MB的更新主要是针对自动施法和快速施法的调整本来内容不多不少朋友都有自动施法和快速施法的困扰英文更新日志一些视觉BUG修复就不翻译了主要翻译自动施...

Redis 是如何提供服务的

在刚刚接触Redis的时候,最想要知道的是一个’setnameJhon’命令到达Redis服务器的时候,它是如何返回’OK’的?里面命令处理的流程如何,具体细节怎么样?你一定有问过自己...

lua _G、_VERSION使用

到这里我们已经把lua基础库中的函数介绍完了,除了函数外基础库中还有两个常量,一个是_G,另一个是_VERSION。_G是基础库本身,指向自己,这个变量很有意思,可以无限引用自己,最后得到的还是自己,...

China&#39;s top diplomat to chair third China-Pacific Island countries foreign ministers&#39; meeting

BEIJING,May21(Xinhua)--ChineseForeignMinisterWangYi,alsoamemberofthePoliticalBureau...

移动工作交流工具Lua推出Insights数据分析产品

Lua是一个适用于各种职业人士的移动交流平台,它在今天推出了一项叫做Insights的全新功能。Insights是一个数据平台,客户可以在上面实时看到员工之间的交流情况,并分析这些情况对公司发展的影响...

Redis 7新武器:用Redis Stack实现向量搜索的极限压测

当传统关系型数据库还在为向量相似度搜索的性能挣扎时,Redis7的RedisStack...

Nginx/OpenResty详解,Nginx Lua编程,重定向与内部子请求

重定向与内部子请求Nginx的rewrite指令不仅可以在Nginx内部的server、location之间进行跳转,还可以进行外部链接的重定向。通过ngx_lua模块的Lua函数除了能实现Nginx...