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

Python快速入门教程2:列表_python列表方法总结

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

一、列表简介

列表(list)是Python中的一种有序且可变的序列类型。它可以存储多个元素,并允许重复元素。列表中的元素可以是不同类型的数据,如整数、字符串、其他列表等。

创建列表

  • 使用方括号[]创建列表。
  • 使用list()构造函数将其他可迭代对象转换为列表。
# 方法1:使用方括号
fruits = ['apple', 'banana', 'orange']

# 方法2:使用list()构造函数
numbers = list([1, 2, 3, 4, 5])
empty_list = []  # 创建空列表

二、访问列表元素

索引访问

使用索引访问列表中的元素,索引从0开始。负索引可以从列表末尾开始访问。

fruits = ['apple', 'banana', 'orange']

print(fruits[0])   # 输出 'apple'
print(fruits[-1])  # 输出 'orange'

切片操作

可以对列表进行切片操作,返回一个新的列表。

numbers = [1, 2, 3, 4, 5]

print(numbers[1:4])  # 输出 [2, 3, 4]
print(numbers[:3])   # 输出 [1, 2, 3]
print(numbers[2:])   # 输出 [3, 4, 5]
print(numbers[::2])  # 输出 [1, 3, 5] (每隔一个元素)

三、列表的基本操作

添加元素

  • 使用append()方法在列表末尾添加单个元素。
  • 使用extend()方法在列表末尾添加多个元素(可以是另一个列表)。
  • 使用insert()方法在指定位置插入元素。
fruits = ['apple', 'banana']

# 在末尾添加元素
fruits.append('orange')

# 添加多个元素
fruits.extend(['grape', 'mango'])

# 在指定位置插入元素
fruits.insert(1, 'pear')

删除元素

  • 使用remove()方法删除指定值的第一个匹配项。
  • 使用pop()方法删除并返回指定索引处的元素(默认删除最后一个元素)。
  • 使用del语句删除指定索引或切片范围的元素。
fruits = ['apple', 'banana', 'orange']

# 删除指定值的元素
fruits.remove('banana')

# 删除并返回指定索引的元素
popped_fruit = fruits.pop(0)

# 删除指定索引或切片范围的元素
del fruits[0]
del fruits[1:3]

清空列表

使用clear()方法清空列表中的所有元素。

fruits.clear()

修改元素

直接通过索引修改列表中的元素。

fruits = ['apple', 'banana', 'orange']
fruits[1] = 'pear'

排序

使用sort()方法对列表进行原地排序,使用sorted()函数返回排序后的新列表。

numbers = [3, 1, 4, 1, 5, 9]

# 原地排序
numbers.sort()

# 返回排序后的新列表
sorted_numbers = sorted(numbers, reverse=True)  # 降序排序

反转

使用reverse()方法反转列表中的元素顺序。

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

四、列表推导式

列表推导式是一种简洁的方式来创建列表。

squares = [x**2 for x in range(10)]
print(squares)  # 输出 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # 输出 [0, 2, 4, 6, 8]

五、应用场景

1. 数据处理

用于存储和处理大量数据。

# 示例:计算平均分
grades = [85, 92, 78, 90, 88]
average_grade = sum(grades) / len(grades)
print(f"平均成绩: {average_grade}")

2. 用户输入处理

存储用户输入的一系列数据。

user_inputs = []
while True:
    user_input = input("请输入一个数字 (输入 'done' 结束): ")
    if user_input.lower() == 'done':
        break
    try:
        number = float(user_input)
        user_inputs.append(number)
    except ValueError:
        print("无效输入,请输入一个有效的数字")

print(f"您输入的数字: {user_inputs}")

3. 遍历和操作数据

结合循环和条件语句遍历和操作列表中的元素。

# 示例:找出列表中的最大值和最小值
numbers = [10, 20, 30, 40, 50]
max_value = max(numbers)
min_value = min(numbers)
print(f"最大值: {max_value}, 最小值: {min_value}")

# 示例:过滤出偶数
even_numbers = [x for x in numbers if x % 2 == 0]
print(f"偶数: {even_numbers}")

4. 模拟栈和队列

列表可以用作简单的栈(后进先出)和队列(先进先出)。

# 栈操作
stack = []
stack.append(1)  # 入栈
stack.append(2)
stack.append(3)
print(stack.pop())  # 出栈,输出 3

# 队列操作
queue = []
queue.append(1)  # 入队
queue.append(2)
queue.append(3)
print(queue.pop(0))  # 出队,输出 1

5. 多维列表

列表可以嵌套,形成多维列表(如矩阵)。

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 访问二维列表元素
print(matrix[1][2])  # 输出 6

# 遍历二维列表
for row in matrix:
    for element in row:
        print(element, end=' ')
    print()

相关推荐

【开源推荐】给大家推荐个基于ChatGPT的PHP开发库 openai-php-api

有了这个库大家就可以愉快的使用PHP对接chatGPT的官方接口了,至于对接了官方接口想要做什么就看你自己的啦环境要求PHP7.4或以上composer1.6.5以上支持框架Laravel、Sym...

3个最流行的大模型应用开发框架【LLM】

随着人工智能的能力,特别是大型语言模型(LLM)的不断发展和演变,开发人员正在寻求将AI功能整合到他们的应用程序中。虽然文本完成和摘要等简单任务可以通过直接调用OpenAI或Coher...

都说PHP性能差,但PHP性能真的差吗?

今天本能是想测试一个PDO持久化,会不会带来会话混乱的问题先贴一下PHP代码,代码丑了点,但是坚持能run就行,反正就是做个测试。<?php$dsn='mysql:host=l...

saas介绍和原理 · laravel-独立站-商城SaaS – 湾区梁工

SaaS就是多租户,一个应用可以分给很多用户使用,而应用只需要维护一个。那么应用就需要做好各种资源的隔离(数据库,文件,缓存,队列,后台,命令行等等)。有两种类型的多租户SaaS形式:1,单数据库Sa...

3分钟短文 | Laravel SQL筛选两个日期之间的记录,怎么写?

引言今天说一个细分的需求,在模型中,或者使用laravel提供的EloquentORM功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写?本文通过几个例子,为大家梳理一下。学习时...

pip 2(根细胞吸收水借助pip2)

pip-h#-helppipdownload#下载.whl文件,然后是可以安装的UV:Python包管理神器-比pip快100倍安装方法Windows:1powershe...

想买《辐射4》的Pip-Boy特别版?那你可得抓紧点

今年秋天玩家就能够玩到《辐射4(Fallout4)》,而且还可以边玩这款游戏边把真实的Pip-Boy穿戴装置套在手上。最近,这款游戏的Pip-Boy特殊版本已经开放玩家在百思买、沃尔玛以及GameS...

PaddleOCR 介绍及部署(paddleocr 安装)

PaddleOCR是由百度飞桨(PaddlePaddle)团队开发的开源OCR工具包,凭借其高精度、多场景适应性和易用性,成为目前最受欢迎的光学字符识别工具之一。以下是其核心特点与技术亮点:一、...

从需求到技术落地:AI产品经理的技术同理心修炼

在当今快速发展的AI时代,产品经理的角色不再局限于需求收集与规划,还需要深入理解技术实现的边界与成本。本文以UnityML-Agents环境配置与寻路Demo实战为例,探讨AI产品经理如何通过亲身体...

在windows上设置python的环境(windows配置python环境)

上文安装好了python,再具体说下python语言的相关环境。#01关于PythonPython是一个高级别的、边运行边解释的、动态类型的编程语言,以简洁的语法、强大的功能和丰富的资源库而闻名。...

uv——Python开发栈中的高效全能小工具

每天写Python代码的同学,肯定都离不开pip、virtualenv、Poetry等基础工具,但是对这些工具可能是又恨又离不开。那么有什么好的替代呢,虫虫今天就给大家介绍一个替代他们的小工具uv,一...

数据驱动型Python应用开发框架:Taipy

1.介绍Taipy是一个用于构建数据驱动应用的Python框架。它允许开发者快速创建交互式数据应用,支持数据可视化、数据处理和自动化工作流。1.1Taipy核心特性低代码/无代码GUI开发数据...

推荐这几个Python实战项目,瞬间读懂Python!

推荐这几个Python实战项目,瞬间读懂Python!Python这玩意儿,说难不难,说简单吧也不是那么容易。我琢磨着,光看书学理论可不行,得动手写点东西才能真正掌握。今儿个我就给大伙儿推荐几个实战项...

Python项目源码加密部署方案(python源码加密工具)

保护Python代码的几种方式对代码进行混淆以降低源码可读性将py文件编译为二进制pyc文件使用Pyinstaller打包源码为二进制可执行文件使用PyArmor加密脚本将py/py...

史上最全!近万字梳理Python 开发必备的 os 模块(建议收藏)

点赞、收藏、加关注,下次找我不迷路一、开篇本文将带你深入探索os模块的核心功能,通过大量实际案例和代码示例,助你彻底掌握这个Python开发的必备神器。全文近万字,建议收藏后慢慢消化,用的时...