当前位置:首页 > 工具 > 正文内容

Python列表详解:基础操作与嵌套结构

访客 工具 2026年10月7日 1

列表定义与特性

Python中的列表(list)是一种有序、可变的容器,用于存储多个元素。其基本语法为用方括号包裹逗号分隔的元素:

students = ['Alice', 20, 'Beijing', True]

列表支持混合数据类型,包括字符串、数字、布尔值甚至其他列表,且元素顺序固定,可通过索引访问。

元素查询

通过整数索引访问元素,索引从0开始:

colors = ['red', 'green', 'blue']
print(colors[0])  # 输出: red
print(colors[2])  # 输出: blue

内置函数提供更灵活的查询方式:

  • index():返回指定元素首次出现的索引,未找到抛出 ValueError。
fruits = ['apple', 'banana', 'apple']
print(fruits.index('banana'))  # 输出: 1
  • count():统计指定元素在列表中出现的次数。
print(fruits.count('apple'))  # 输出: 2
  • len():返回列表总元素数量。
print(len(fruits))  # 输出: 3

使用 in 和 not in 判断元素是否存在:

print('apple' in fruits)     # True
print('orange' not in fruits) # True

元素增删改

添加元素

  • append():在末尾添加单个元素,即使传入列表,也会作为整体插入。
items = ['book', 'pen']
items.append('notebook')
items.append(['pencil', 'eraser'])
print(items)  
# 输出: ['book', 'pen', 'notebook', ['pencil', 'eraser']]
  • extend():将可迭代对象中的每个元素逐一添加到末尾。
items.extend(['pencil', 'eraser'])
print(items)  
# 输出: ['book', 'pen', 'notebook', ['pencil', 'eraser'], 'pencil', 'eraser']
  • insert():在指定位置插入元素,原位置及之后元素后移。
items.insert(1, 'ruler')
print(items)  
# 输出: ['book', 'ruler', 'pen', 'notebook', ['pencil', 'eraser'], 'pencil', 'eraser']

删除元素

  • del:根据索引删除元素或整个列表。
del items[0]
print(items)  # 删除第一个元素
  • pop():删除并返回指定索引处的元素,默认删除最后一个。
last_item = items.pop()
removed = items.pop(2)
print(last_item)  # 'eraser'
print(removed)    # 'notebook'
  • remove():删除第一个匹配的元素,若不存在则报错。
items.remove('pencil')
print(items)  # 删除第一个 'pencil'
  • clear():清空所有元素,列表变为空。
items.clear()
print(items)  # []

修改元素

直接通过索引赋值修改:

colors[0] = 'yellow'
print(colors)  # ['yellow', 'green', 'blue']

reverse():反转列表顺序:

numbers = [1, 3, 5, 7]
numbers.reverse()
print(numbers)  # [7, 5, 3, 1]

sort():排序,默认升序,reverse=True为降序:

nums = [9, 2, 5, 1]
nums.sort()        # 升序
print(nums)        # [1, 2, 5, 9]

nums.sort(reverse=True)  # 降序
print(nums)        # [9, 5, 2, 1]

列表复制

使用 copy() 创建浅拷贝,避免原列表被修改影响副本:

original = [1, 2, 3]
duplicate = original.copy()
duplicate.append(4)
print(original)   # [1, 2, 3]
print(duplicate)  # [1, 2, 3, 4]

遍历列表

while循环

适用于需要索引的场景,手动控制位置:

names = ['Anna', 'Bob', 'Charlie']
index = 0
while index < len(names):
    print(names[index])
    index += 1

for循环

推荐用于仅需元素值的场景,代码简洁高效:

for name in names:
    print(name)

嵌套列表

列表可包含其他列表,形成二维结构:

classroom = [
    ['Alice', 'Bob', 'Charlie'],
    ['David', 'Eve', 'Frank'],
    ['Grace', 'Henry', 'Ivy']
]

访问嵌套元素需多级索引:

print(classroom[1][0])  # 输出: David

遍历嵌套结构使用嵌套for循环:

for group in classroom:
    for student in group:
        print(student, end=' ')
    print()  # 换行

输出:

Alice Bob Charlie 
David Eve Frank 
Grace Henry Ivy 

嵌套列表常用于表示矩阵、表格或多维数据结构,是Python处理复杂数据的基础工具。

标签: Python

相关文章

Trojan服务器搭建与配置

一、整体架构(先对齐认知)Clash Meta (PC / iOS / Android)        ↓ TLS   Trojan Server (443)        ↓     InternetTrojan 的核心是: TLS + HTTPS 流量伪装 看起来像正常网站 非常适合...

Tailscale 的详细用法

Tailscale 是一种基于 WireGuard 协议 的 零配置 VPN(虚拟私有网络)服务,让设备之间能够 安全、加密地直接连接,就像它们在同一个本地网络一样。它的核心特点是 简单、安全、跨平台。Tailscale 非常适合 没有公网 IP、两台电脑不在同一局域网 的场景。 简单来说,Tailscale 是什么?Tailscale 是一款让你的各种设备(电脑、服务器、手机...

Clash Tun 模式 导致 爱快(iKuai SD-Wan)内网域名无法访问

一、Clash  DNS 配置dns:  enable: true  listen: 0.0.0.0:53  ipv6: true  enhanced-mode: redir-host  nameserver:    - 223.5.5.5    - 223.6.6.6iKuai 内网域名 ...

深入解析Node.js运行环境与异步I/O架构

深入解析Node.js运行环境与异步I/O架构

核心定义与价值Node.js本质上是一个JavaScript运行环境,而非编程语言或应用框架。它赋予了JavaScript脱离浏览器在服务端、命令行工具及网络应用中执行的能力。其核心意义在于:用单一语言打通前后端开发壁垒。基于事件驱动与非阻塞I/O的架构特性,Node.js在处理API网关、实时通信及微服务等I/O密集型场景时表现卓越,已成为现代后端工程的主流选择。浏览器沙箱限制1995年Java...

ADO.NET SQL参数化查询的最佳实践

在 ADO.NET 中执行 SQL 查询时,参数化查询是一种关键的安全措施和性能优化手段。它通过将 SQL 命令和用户提供的数据分开处理,有效防止了 SQL 注入攻击,并有助于数据库缓存执行计划。下面总结了几种常用的参数化查询方式。 1. 使用 SqlParameter 对象(推荐) 这是最推荐的参数化查询方式。通过显式创建 SqlParameter 对象,您可以精确控制参数的类...

基于ELK的日志集中化分析系统搭建

构建统一日志管理平台的必要性 在分布式架构中,各服务节点独立运行,日志分散存储于不同主机。传统通过命令行工具如grep、awk逐个检索日志的方式,在数据量庞大时效率极低,难以实现快速定位问题。为提升运维效率,需建立集中式日志处理体系,具备日志采集、传输、存储、分析与告警能力。 ELK技术栈核心组件解析 Elasticsearch:分布式搜索引擎,支持全文检索、实时数据分析和高可用集群部署,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。