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

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

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

一、列表简介

列表(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()

相关推荐

GANs为何引爆机器学习?这篇基于TensorFlow的实例教程为你解惑!

「机器人圈导览」:生成对抗网络无疑是机器学习领域近三年来最火爆的研究领域,相关论文层出不求,各种领域的应用层出不穷。那么,GAN到底如何实践?本文编译自Medium,该文作者以一朵玫瑰花为例,详细阐...

高丽大学等机构联合发布StarGAN:可自定义表情和面部特征

原文来源:arXiv、GitHub作者:YunjeyChoi、MinjeChoi、MunyoungKim、Jung-WooHa、SungKim、JaegulChoo「雷克世界」编译:嗯~...

TensorFlow和PyTorch相继发布最新版,有何变化

原文来源:GitHub「机器人圈」编译:嗯~阿童木呀、多啦A亮Tensorflow主要特征和改进在Tensorflow库中添加封装评估量。所添加的评估量列表如下:1.深度神经网络分类器(DNNCl...

「2022 年」崔庆才 Python3 爬虫教程 - 深度学习识别滑动验证码缺口

上一节我们使用OpenCV识别了图形验证码躯壳欧。这时候就有朋友可能会说了,现在深度学习不是对图像识别很准吗?那深度学习可以用在识别滑动验证码缺口位置吗?当然也是可以的,本节我们就来了解下使用深度...

20K star!搞定 LLM 微调的开源利器

LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为...

大模型DeepSeek本地部署后如何进行自定义调整?

1.理解模型架构a)查看深度求索官方文档或提供的源代码文件,了解模型的结构、输入输出格式以及支持的功能。模型是否为预训练权重?如果是,可以在预训练的基础上进行微调(Fine-tuning)。是否需要...

因配置不当,约5000个AI模型与数据集在公网暴露

除了可访问机器学习模型外,暴露的数据还可能包括训练数据集、超参数,甚至是用于构建模型的原始数据。前情回顾·人工智能安全动态向ChatGPT植入恶意“长期记忆”,持续窃取用户输入数据多模态大语言模型的致...

基于pytorch的深度学习人员重识别

基于pytorch的深度学习人员重识别Torchreid是一个库。基于pytorch的深度学习人员重识别。特点:支持多GPU训练支持图像的人员重识别与视频的人员重识别端到端的训练与评估简单的re...

DeepSeek本地部署:轻松训练你的AI模型

引言:为什么选择本地部署?在AI技术飞速发展的今天,越来越多的企业和个人希望将AI技术应用于实际场景中。然而,对于一些对数据隐私和计算资源有特殊需求的用户来说,云端部署可能并不是最佳选择。此时,本地部...

谷歌今天又开源了,这次是Sketch-RNN

前不久,谷歌公布了一项最新技术,可以教机器画画。今天,谷歌开源了代码。在我们研究其代码之前,首先先按要求设置Magenta环境。(https://github.com/tensorflow/magen...

Tensorflow 使用预训练模型训练的完整流程

前面已经介绍了深度学习框架Tensorflow的图像的标注和训练数据的准备工作,本文介绍一下使用预训练模型完成训练并导出训练的模型。1.选择预训练模型1.1下载预训练模型首先需要在Tensorf...

30天大模型调优学习计划(30分钟训练大模型)

30天大模型调优学习计划,结合Unsloth和Lora进行大模型微调,掌握大模型基础知识和调优方法,熟练应用。第1周:基础入门目标:了解大模型基础并熟悉Unsloth等工具的基本使用。Day1:大模...

python爬取喜马拉雅音频,json参数解析

一.抓包分析json,获取加密方式1.抓包获取音频界面f12打开抓包工具,播放一个(非vip)视频,点击“媒体”单击打开可以复制URL,发现就是我们要的音频。复制“CKwRIJEEXn-cABa0Tg...

五、JSONPath使用(Python)(json数据python)

1.安装方法pipinstalljsonpath2.jsonpath与Xpath下面表格是jsonpath语法与Xpath的完整概述和比较。Xpathjsonpath概述/$根节点.@当前节点...

Python网络爬虫的时候json=就是让你少写个json.dumps()

大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Python网络爬虫的问题,提问截图如下:登录请求地址是这个:二、实现过程这里【甯同学】给了一个提示,如下所示:估计很多小伙伴和...