pin_drop当前位置:知识文库 ❯ 图文

Python列表创建与访问

概述

列表(list)是Python中最常用的数据结构之一,它是一个有序的、可变的元素集合,可以容纳任意类型的对象。列表使用方括号 [] 来表示,元素之间用逗号分隔。掌握列表的创建与访问是学习Python的基础,也是后续学习列表操作的前提。


多种创建方式

字面量创建

最直接的创建方式是使用方括号将元素包裹起来:

代码示例

empty_list = []
numbers = [1, 2, 3, 4, 5]
fruits = ["apple", "banana", "cherry"]
mixed = [1, "hello", 3.14, True, None]

list() 函数创建

使用内置的 list() 函数可以将其他可迭代对象转换为列表:

代码示例

empty_list = list()
from_string = list("Python")
from_tuple = list((1, 2, 3))
from_range = list(range(5))
from_set = list({3, 1, 2})
from_dict = list({"a": 1, "b": 2})

range() 创建

range() 函数常与 list() 配合使用,快速生成数值列表:

代码示例

nums = list(range(10))
even_nums = list(range(0, 10, 2))
countdown = list(range(10, 0, -1))

索引访问

正向索引

列表的每个元素都有一个从0开始的正向索引,表示元素在列表中的位置:

代码示例

colors = ["red", "green", "blue", "yellow"]
print(colors[0])
print(colors[2])
print(colors[3])

负向索引

Python支持负向索引,从列表末尾开始计数,最后一个元素的索引为 -1:

代码示例

colors = ["red", "green", "blue", "yellow"]
print(colors[-1])
print(colors[-2])
print(colors[-4])

索引越界

访问不存在的索引会抛出 IndexError

代码示例

nums = [1, 2, 3]
print(nums[5])

提示:应始终确保索引在合法范围内,可以使用 len() 函数获取列表长度来判断。


列表可变性

列表是可变对象,这意味着创建后可以修改其内容:

修改元素

代码示例

nums = [1, 2, 3, 4, 5]
nums[0] = 10
nums[-1] = 50
print(nums)

动态增减

代码示例

nums = [1, 2, 3]
nums.append(4)
nums.extend([5, 6])
nums.remove(2)
print(nums)

可变性的注意事项

由于列表是可变对象,多个变量引用同一个列表时,修改一个会影响其他:

代码示例

a = [1, 2, 3]
b = a
b[0] = 100
print(a)
print(a is b)

提示:如果需要独立的副本,请使用 copy() 方法或切片 [:] 创建新列表。


代码示例

综合示例:创建和访问列表

代码示例

students = list(range(1, 6))
print(f"学生编号列表: {students}")

first = students[0]
last = students[-1]
print(f"第一个学生编号: {first}")
print(f"最后一个学生编号: {last}")

students[2] = 30
print(f"修改后: {students}")

length = len(students)
print(f"列表长度: {length}")

mid_index = length // 2
print(f"中间元素: {students[mid_index]}")

注意事项

  • 索引从0开始:Python列表的索引从0开始,最后一个元素的索引为 len(list) - 1

  • 负索引的范围:负索引从 -1 开始,最小值为 -len(list)

  • 索引越界:访问超出范围的索引会抛出 IndexError,务必检查边界

  • 引用与副本:直接赋值不会创建新列表,修改会相互影响

  • 混合类型:列表可以存储不同类型的元素,但建议保持类型一致性以便维护


小结

本节介绍了列表的多种创建方式(字面量、list()range())、正向和负向索引访问方法,以及列表的可变特性。理解列表的创建与访问是掌握列表操作的基础,务必熟练掌握索引机制和可变性带来的影响。


练习题

练习1

使用 range() 创建一个包含 1 到 20 中所有奇数的列表,并打印第一个和最后一个元素。

练习2

给定列表 data = [10, 20, 30, 40, 50],将第二个元素修改为 25,最后一个元素修改为 55,然后打印修改后的列表。思考:如果 other = data,修改 otherdata 会变化吗?为什么?

常见问题

列表可以存储不同类型的数据吗?

可以。Python列表可以存储任意类型的元素,包括数字、字符串、布尔值、甚至其他列表。但为了代码可维护性,建议同一列表存储相同类型的元素。

为什么直接赋值不能创建列表副本?

因为在Python中,赋值操作只是创建了新的引用,指向同一个对象。要创建独立的副本,需要使用copy()方法、切片[:]或list()函数。

负索引-1和len(list)-1有什么区别?

两者效果相同,都指向最后一个元素。负索引是Python提供的语法糖,更简洁直观。-1表示最后一个元素,-2表示倒数第二个,以此类推。

标签: Python列表 列表创建 索引访问 可变对象 Python基础

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python字符串编码ASCII/Unicode/UTF-8与encode decode方法 下一篇: Python列表切片

poll相关推荐

作者头像 智能小晨 python

Python元组命名namedtuple

发布日期 2026-05-31
深入学习Python命名元组namedtuple,掌握字段访问、_make创建、_asdict转字典、_replace替换字段等核心方法。理解命名元组与普通元组的区别,写出更清晰易读的Python代码。
作者头像 智能小晨 python

Python元组解包

发布日期 2026-05-31
全面学习Python元组解包技巧,包括基本解包、星号扩展解包、嵌套解包、交换变量和函数多值返回。掌握优雅的Python赋值语法,让你的代码更简洁高效。
作者头像 智能小晨 python

Python元组index方法

发布日期 2026-05-31
深入学习Python元组index()方法,掌握元素索引查找技巧。了解index()语法、指定范围查找、安全查找方法和实际应用场景,避免ValueError异常,提升Python编程效率。
作者头像 智能小晨 python

Python元组count方法

发布日期 2026-05-31
深入学习Python元组count()方法,掌握元素出现次数统计技巧。了解count()语法、性能优化建议、嵌套元组统计和实际应用场景,配合练习题巩固所学知识。