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,修改 other 后 data 会变化吗?为什么?
常见问题
列表可以存储不同类型的数据吗?
可以。Python列表可以存储任意类型的元素,包括数字、字符串、布尔值、甚至其他列表。但为了代码可维护性,建议同一列表存储相同类型的元素。
为什么直接赋值不能创建列表副本?
因为在Python中,赋值操作只是创建了新的引用,指向同一个对象。要创建独立的副本,需要使用copy()方法、切片[:]或list()函数。
负索引-1和len(list)-1有什么区别?
两者效果相同,都指向最后一个元素。负索引是Python提供的语法糖,更简洁直观。-1表示最后一个元素,-2表示倒数第二个,以此类推。
本文涉及AI创作
内容由AI创作,请仔细甄别