Python列表操作指南:索引、切片、遍历与综合应用

文章目录

列表

简介

列表(List)是Python中最常用的数据结构之一,它可以存储多个元素,并且支持对元素的索引和切片操作。本文将介绍列表的基本操作和常用方法。

创建列表

通过方括号 [] 来创建一个列表,可以是空列表或包含元素的列表。例如:

python 复制代码
my_list = []  # 创建一个空列表

my_list = [10]  # 创建一个只包含一个元素的列表

my_list = [10, 20, 30, 40, 50]  # 创建一个包含多个元素的列表

索引和切片

列表中的元素按照插入顺序存储,并且每个元素都有一个索引,索引从0开始计数。可以使用索引来获取列表中的元素,也可以使用切片来获取子列表。

示例代码:

python 复制代码
my_list = [10, 20, 30, 40, 50]

# 通过索引获取元素
print(my_list[0])  # 输出:10
print(my_list[4])  # 输出:50

# 使用切片获取子列表
print(my_list[1:4])  # 输出:[20, 30, 40]

列表的长度

使用 len() 函数可以获取列表中元素的个数,即列表的长度。

示例代码:

python 复制代码
my_list = [10, 20, 30, 40, 50]
print(len(my_list))  # 输出:5

列表的拼接和重复

使用 + 可以将两个列表拼接为一个列表,使用 * 可以将列表重复指定的次数。

示例代码:

python 复制代码
list1 = [1, 2, 3]
list2 = [4, 5, 6]

new_list = list1 + list2
print(new_list)  # 输出:[1, 2, 3, 4, 5, 6]

repeated_list = list1 * 3
print(repeated_list)  # 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]

检查元素是否存在

使用 innot in 可以检查指定元素是否存在于列表中。

示例代码:

python 复制代码
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']

print('牛魔王' in stus)  # 输出:False
print('孙悟空' not in stus)  # 输出:False

列表的方法

列表提供了许多常用的方法,可以对列表进行增删改查等操作。

index() 方法

index() 方法用于获取指定元素在列表中第一次出现的索引,可以指定起始位置和结束位置进行查找。

示例代码:

python 复制代码
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']

print(stus.index('沙和尚'))  # 输出:2
print(stus.index('沙和尚', 3, 6))  # 输出:3

# 如果要获取列表中没有的元素,会抛出异常
# print(stus.index('牛魔王'))  # 抛出 ValueError 异常

count() 方法

count() 方法用于统计指定元素在列表中出现的次数。

示例代码:

python 复制代码
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精', '沙和尚', '沙和尚']

print(stus.count('沙和尚'))  # 输出:3

列表的修改和删除

修改元素

通过索引可以修改列表中的某个元素的值。

示例代码:

python 复制代码
my_list = [10, 20, 30, 40, 50]

my_list[2] = 35
print(my_list)  # 输出:[10, 20, 35, 40, 50]

删除元素

可以使用 del 关键字或 pop() 方法删除列表中的元素。

使用 del 关键字:

示例代码:

python 复制代码
my_list = [10, 20, 30, 40, 50]

del my_list[2]
print(my_list)  # 输出:[10, 20, 40, 50]

使用 pop() 方法:

pop() 方法用于删除指定索引的元素,并返回被删除的元素的值。如果不指定索引,默认删除最后一个元素。

示例代码:

python 复制代码
my_list = [10, 20, 30, 40, 50]

removed_element = my_list.pop(2)
print(removed_element)  # 输出:30
print(my_list)  # 输出:[10, 20, 40, 50]

removed_element = my_list.pop()
print(removed_element)  # 输出:50
print(my_list)  # 输出:[10, 20, 40]

列表的排序和反转

可以使用 sort() 方法对列表进行排序,使用 reverse() 方法进行反转。

示例代码:

python 复制代码
my_list = [3, 1, 4, 2, 5]

my_list.sort()
print(my_list)  # 输出:[1, 2, 3, 4, 5]

my_list.reverse()
print(my_list)  # 输出:[5, 4, 3, 2, 1]

添加元素

使用 append() 方法可以在列表末尾添加一个元素,使用 insert() 方法可以在指定索引位置插入一个元素。

示例代码:

python 复制代码
my_list = [10, 20, 30]

my_list.append(40)
print(my_list)  # 输出:[10, 20, 30, 40]

my_list.insert(1, 15)
print(my_list)  # 输出:[10, 15, 20, 30, 40]

列表的拷贝

在Python中,列表是可变对象,当将一个列表赋值给另一个变量时,实际上是将列表的引用赋给了新的变量。如果修改其中一个变量的值,另一个变量也会受到影响。

为了避免这种情况,可以使用 copy() 方法或切片操作来创建一个列表的副本。

示例代码:

python 复制代码
my_list = [10, 20, 30]
copy_list = my_list.copy()
slice_list = my_list[:]

my_list[0] = 5

print(copy_list)  # 输出:[10, 20, 30]
print(slice_list)  # 输出:[10, 20, 30]

这样,修改原列表后,副本列表不会受到影响。

当然,还有更多关于列表的内容可以继续介绍。

列表的遍历

可以使用循环来遍历列表中的所有元素,并对每个元素进行操作。

示例代码:

python 复制代码
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧']

# 使用 for 循环遍历列表
for stu in stus:
    print(stu)

# 使用 while 循环遍历列表
i = 0
while i < len(stus):
    print(stus[i])
    i += 1

列表的切片

除了获取子列表之外,切片操作还可以修改和删除列表的元素。

示例代码:

python 复制代码
my_list = [10, 20, 30, 40, 50]

# 修改切片中的元素
my_list[1:4] = [25, 35, 45]
print(my_list)  # 输出:[10, 25, 35, 45, 50]

# 删除切片中的元素
my_list[1:4] = []
print(my_list)  # 输出:[10, 50]

列表的嵌套

列表可以包含其他列表作为元素,形成嵌套结构。

示例代码:

python 复制代码
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

print(matrix[0])  # 输出:[1, 2, 3]
print(matrix[1][2])  # 输出:6

列表推导式

列表推导式是一种简洁创建列表的方式,可以使用循环和条件语句来创建列表。

示例代码:

python 复制代码
# 创建一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares)  # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 创建一个只包含偶数的列表
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print(even_numbers)  # 输出:[2, 4, 6, 8, 10]

python精品专栏推荐


python基础知识(0基础入门)

【python基础知识】0.print()函数
【python基础知识】1.数据类型、数据应用、数据转换
【python基础知识】2.if条件判断与条件嵌套
【python基础知识】3.input()函数
【python基础知识】4.列表和字典
【python基础知识】5.for循环和while循环
【python基础知识】6.布尔值和四种语句(break、continue、pass、else)
【python基础知识】7.实操-用Python实现"文字PK"小游戏(一)
【python基础知识】7.实操-用Python实现"文字PK"小游戏(二)
【python基础知识】8.编程思维:如何解决问题-思维篇
【python基础知识】9.函数的定义和调用
【python基础知识】10.用函数编写程序 - 实操篇
【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇
【python基础知识】11.如何debug -常见报错原因及排查思路 - 思维篇
【python基础知识】12.类与对象(一)
【python基础知识】12.类与对象(二)
【python基础知识】13.类与对象(三)
【python基础知识】13.类与对象(四)
【python基础知识】14.图书管理系统的搭建(类与对象实操)
【python基础知识】15.编码基础知识
【python基础知识】16.文件读写基础及操作
【python基础知识】16."古诗默写题"的python实现(文件读写和编码-实操篇)
【python基础知识】17.模块的概念以及如何引入
【python基础知识】18.实操-使用python自动群发邮件
【python基础知识】19.产品思维以及流程图的使用 - 思维篇
【python基础知识】20."午饭吃什么"的python实现(产品思维-实操篇)
【python基础知识】21.高效偷懒的正确打开方式-毕业篇
【python文件处理】CSV文件的读取、处理、写入
【python文件处理】Excel自动处理(使用 openpyxl)
【python文件处理】-excel格式处理


python爬虫知识

【python爬虫】1.爬虫基础知识
【python爬虫】2.网页基础知识
【python爬虫】3.爬虫初体验(BeautifulSoup解析)
【python爬虫】4.爬虫实操(菜品爬取)
【python爬虫】5.爬虫实操(歌词爬取)
【python爬虫】6.爬虫实操(带参数请求数据)
【python爬虫】7.爬到的数据存到哪里?
【python爬虫】8.温故而知新
【python爬虫】9.带着小饼干登录(cookies)
【python爬虫】10.指挥浏览器自动工作(selenium)
【python爬虫】11.让爬虫按时向你汇报
【python爬虫】12.建立你的爬虫大军
【python爬虫】13.吃什么不会胖(爬虫实操练习)
【python爬虫】14.Scrapy框架讲解
【python爬虫】15.Scrapy框架实战(热门职位爬取)
【python爬虫】16.爬虫知识点总结复习

相关推荐
秦jh_13 分钟前
【Linux】多线程(概念,控制)
linux·运维·前端
娅娅梨32 分钟前
C++ 错题本--not found for architecture x86_64 问题
开发语言·c++
汤米粥38 分钟前
小皮PHP连接数据库提示could not find driver
开发语言·php
冰淇淋烤布蕾41 分钟前
EasyExcel使用
java·开发语言·excel
拾荒的小海螺1 小时前
JAVA:探索 EasyExcel 的技术指南
java·开发语言
秀儿还能再秀1 小时前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
马剑威(威哥爱编程)1 小时前
哇喔!20种单例模式的实现与变异总结
java·开发语言·单例模式
白-胖-子1 小时前
【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-统计数字
开发语言·c++·算法·蓝桥杯·等考·13级
好睡凯1 小时前
c++写一个死锁并且自己解锁
开发语言·c++·算法
java—大象1 小时前
基于java+springboot+layui的流浪动物交流信息平台设计实现
java·开发语言·spring boot·layui·课程设计