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

Python自学笔记6-列表有哪些常用操作

liuian 2025-02-18 12:23 11 浏览

列表是Python中最重要的数据类型,它使用的频率非常非常的高,最大程度的发挥Python的灵活性。

和字符串一样,列表的操作方法也有很多。如果说一头钻进去,可能会导致学习没有重点。在这篇文章当中,首先九柄会跟大家介绍列表的基础操作,然后我会跟大家去说一些列表这个数据类型常用的实战操作。

争取能够对Python列表有一个大概的认识。

Python列表定义

首先我们来看一下列表的定义。列表通常用来存储多个数据,每一个数据之间用逗号隔开,他们被称为元素,列表的左右两边带有中括号。

a_list = [1, 2, 3, 4]

你可以把列表想象成是某种容器,你可以往这个容器里面塞入任何的东西。并且列表当中的元素可以是任意的数据类型,你可以在一个列表当中同时存储数字、字符串,甚至嵌套列表。

a_list = [1, "hello", ["new", "list"]]

当然,虽然列表可以存储不同的数据类型,但是大多数情况下,里面元素的数据类型是一样的,你可以简单理解他和其他的编程语言当中的数组差不多。

Python列表的基本操作

列表的基本操作分为:增、删、改、查。

  • ? ”查“ 主要是去获取列表的某一个元素或者是多个元素,通过索引和切片可以获取。
  • ? ”增“ 主要是对这个列表当中去添加一个新的元素。
  • ? “删” 主要指我们对列表当中的某元素进行删除。
  • ? “改”主要是这个对这个列表当中的元素去进行修改。

因为列表本身有多个元素,我们可以获取它的长度

a = [1, 2, 3]
print(len(a)) #3

Python列表索引

列表的索引的表示基本上和字符串的表示方法差不多,所以你可以直接引用字符串当中的操作,索引从0开始

man = [1, 2, 3]
print(man[1]) #2
print(man[0]) #1

索引可以是负数,表示倒数第几个,也就是从列表的右边数到左边。索引为 -1 表示获取倒数第一个元素,索引为 -2 表示获取倒数第二个元素。为什么正序数的索引从 0 开始,倒序就不能从 0 开始呢?因为索引为 0 不能同时表示两个元素,会造成指令的冲突。

print(man[-1]) #3

超出索引范围报 IndexError 错误

print(man[8])

Python列表切片

列表的切片呢也基本上和字符串的切片差不多。所以我们可以直接用字符串切片的方法。切片的表示方法是:var[start: end]。 start 表示开始位置的索引号,end 表示结束位置的索引号, 但是不包含 end。

girl = [1,2,3,4,5,6]
part_of_girl = girl[0:1]
print(part_of_girl)  # [1]

切片的索引号也可以是负数,但是在使用的时候要确保 end 是在 start 的右边,end - start > 0 。

print(girl[0: -2])  
print(girl[-2: -4])  

切片的索引号超出范围是不会报错的,取到尽头为止。

print(girl[0:100000000000])

切片的 start 和 end 都可以省略。

girl[1:]
girl[:-1]
girl[:]

切片可以加第三个参数, girl[start:end:step], 其实使用切片时,默认的步长是为 1。

girl[0:3:2]

Python列表添加元素

列表当中添加一个新的元素,我们主要使用两种方法。

第一种方法是使用 append 方法在列表的最后面添加一个元素。

a = [1, 2]
a.append(3) 
# [1,2,3]

第二种方法是通过 insert 方法在某个索引的位置添加一个新的元素,对比一下和上一种方法的区别。

a = [1, 2]
a.insert(0, 3)
# [3,1,2]

Python 列表去除重复元素

在列表当中删除元素的方式也有两种。

第1种是通过remove方法移除指定的值。

a = ["a", "b"]
a.remove("a")
# ['b']

第2种是通过 Pop方法,删除指定索引位置的值。

a = ["a", "b"]
a.pop(1)
# ['a']

如果想直接清空这个列表,那么就可以使用clear方法。

a.clear()

比较常见的是,我们经常要对列表当中的元素去重,可以通过先转化成集合类型,然后再转回列表类型。

a = [1, 2, 1, 4, 2]
print(list(set(a)))

Python列表求和

有的时候呢,我们会在一个列表里面去存储很多的数据,并且要对整个列表当中所有的数据去求和,则可以使用 sum 函数

a = [1, 2, 1, 4, 2]
print(sum(a))

Python 列表排序

列表排序也是使用非常非常多的操作,对整个列表排序之后,可能会简化之后的操作。 要实现排序,不一定非得实现排序算法,在Python当中,可以直接调用列表下面的sort 方法实现排序。

a = [1, 5, 3, 2]
a.sort()

如果想从大到小排序呢,我们可以再加上一个reverse参数。

a.sort(reverse=True)

Python列表推导式

列表推导式是我建议每一个Python初学者都掌握的一个进阶技巧。它能够极大地简化一些列表的复杂操作,让我代码变得更加的优雅。列表推导式主要应用的场合,是对列表当中的每一个元素去进行同样的操作,比如说我们想对一个列表当中的每一个元素都转化成字符串,那么就非常适合使用列表推导式来操作。

a = [1, 5, 3, 2]
b = [str(i) for i in a]
# b = ['1', '5', '3', '2']

总结

列表经常出现在初级Python程序员的面试题当中。如果你刚开始学Python,想找一份Python相关的工作,那么在面试过程当中一般都会问到一些关于列表的面试题。

image.png

其中一个原因是列表确实用的频率比较高,第2个原因是列表一种可变的数据类型,当对它去进行操作时候,比较容易出现bug,在面试当中,如果说对列表进行考核的话,能够稍微看出一个人的代码功底。

相关推荐

RazorSQL Mac版(SQL数据库查询工具)

RazorSQLMac特别版是一款看似简单实则功能非常出色的SQL数据库查询、编辑、浏览和管理工具。RazorSQLformac特别版可以帮你管理多个数据库,支持主流的30多种数据库,包括Ca...

史上最强!开源数据库管理工具DBeaver 24.2发布

DBeaverCommunity是一个免费的跨平台数据库工具,面向开发人员、数据库管理员、分析师和所有使用数据的人员。它支持所有流行的SQL数据库,如MySQL、MariaDB、PostgreSQL...

10个优秀的MySQL管理工具,都是大佬们的珍藏

Mysql开源、体积小、速度快、成本低、安全性高,目前在全球中小型网站中被广泛应用。今天给大家介绍10个优秀的MySQL管理工具,都是大佬们的珍藏,对你有用的话,可以收藏转发。1、Induction...

Mac电脑如何安装向量数据库Milvus

Milvus是一个高性能、高度可扩展的矢量数据库,可在从笔记本电脑到大规模分布式系统的各种环境中高效运行。Milvus提供强大的数据建模功能,使您能够将非结构化或多模态数据组织成结构化集合。Mil...

干掉 PowerDesigner!这款国人开源的数据库设计工具真香

当我们在项目开发初期时,往往需要设计大量的表,此时使用数据库设计工具就会比较高效!今天给大家推荐一款国人开源的数据库设计工具chiner,界面漂亮,功能强大,希望对大家有所帮助!聊聊PowerDesi...

数据库管理工具推荐!SQL Studio:免费、高效,歪...

随着国际环境的变化,越来越多的企业基于供应链安全的需求。信息技术的飞速发展,数据库管理工具的需求也越来越迫切。然而,在众多软件中,要找到一款得心应手的数据库管理工具并不容易。今天,我向大家推荐一款功能...

Mac密码安全管理工具----Enpass(mac密码管理在哪里)

Enpassmac版是一款适用于macOS用户的密码安全管理工具,使用Enpass,你无需再为记住太多的密码和其他重要凭据而头疼了。Enpass把你的密码存放在一个安全的地方,然后通过一个主密码随时...

超实用的14款MySQL数据库管理工具

MySQL是当前流行的数据库引擎之一,具有成本低、速度快、体积小且开放源代码的优点。今天就给大家分享14款MySQL数据库管理工具。1.MySQLDumper这款软件的应用,有效解决使用PHP进行大数...

神器收藏:macOS最强工具清单,16.6k+星 awesome-macOS

神器收藏:macOS最强工具清单,16.6k+星标必看引言在macOS生态中,有一个备受瞩目的神仓库,汇集了最全面、最实用的macOS应用和工具清单。这个项目在GitHub上已获得超过16.6k的...

JetBrains DataGrip Mac中文破解版V2025.1下载安装教程

DataGripforMac是由JetBrains开发的数据库集成开发环境(IDE),专为数据库管理员和开发人员设计。它支持多种数据库(如MySQL、PostgreSQL、Oracle、SQ...

GIS坐标参考系统:EPSG、WKT和PROJ

在之前的教程中,我们介绍了什么是坐标参考系统(CRS)、坐标参考系统的组成部分以及投影坐标参考系统和地理坐标参考系统之间的一般差异。在这个教程中,我们将介绍CRS信息的不同存储方式。推荐:用...

【地理信息可视化】basemap(cartopy)+geopandas显示地图-03

importwarningswarnings.filterwarnings('ignore')importosimportnumpyasnpfromscipy....

字符识别之PaddleOcr介绍、安装与应用

paddleocr介绍paddleocr是一款轻量型字符识别工具库,支持多语言识别,支持pip安装与自定义训练。详细信息如下表所示。名称许可证当前版本下载地址(github地址)支持语言运行方式pi...

111.Python——基于pipenv打包PaddlePaddle的GUI项目

飞桨PaddlePaddle是百度的深度学习框架,用来做一些项目还是非常不错。但是打包就是一件非常麻烦的过程。在文中有讲过打包问题。29.Python程序打包成可执行文件——常见疑难问题解决办法。本文...

Shamos算法:一种在平面上找到最远点的方法

旋转卡尺算法简介Shamos算法,也叫旋转卡尺(Rotatingcalipers)算法,是一种用于解决计算几何问题的优化算法。它可以用来解决许多几何问题,包括计算点集的宽度或直径。算法的名称来源于其...