Python学习笔记之列表和成员运算符及列表相关方法详解

阿澈
阿澈
发布时间:2026-10-12 | 1人浏览过
原创

本文详解Python列表的核心操作,涵盖混合数据类型、索引与切片(含负索引)、成员运算符(in/not in)及可变性概念。同时介绍列表内置函数(len, max, min, sorted)与常用方法(join, append),通过具体代码示例展示如何高效处理列表数据。

列表基础与索引访问

Python 列表是一种可变序列,可以包含任意数据类型,甚至混合存储不同类型的数据。例如,一个列表可以同时包含整数、浮点数、字符串和布尔值:

lst_of_random_things = [1, 3.4, 'a string', True] # 这是一个包含 4 个不同类型元素的列表
print(lst_of_random_things[0]) # 1

访问列表元素主要通过索引实现。索引从 0 开始,获取第一个元素直接使用 [0]。对于最后一个元素,可以通过计算列表长度减一来获取,但更简洁的方式是使用负索引:-1 代表最后一个元素,-2 代表倒数第二个元素,依此类推。

print(lst_of_random_things[0]) # 1
print(lst_of_random_things[len(lst_of_random_things) - 1]) # True

print(lst_of_random_things[-1]) # True
print(lst_of_random_things[-2]) # a string

切片操作详解

切片(Slicing)允许从列表中提取子列表,返回一个新的列表对象。切片语法为 [start:stop],其中 start 索引包含在内,stop 索引排除在外。

  • 指定范围:提取索引 1 到 2(不含)的元素。
lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[1:2]) # [3.4]
  • 省略起始值:从列表开头开始,直到索引 2(不含)。
lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[:2]) # [1, 3.4]
  • 省略结束值:从索引 1 开始,直到列表末尾(包含最后一个元素)。
lst_of_random_things = [1, 3.4, 'a string', True]
print(lst_of_random_things[1:]) # [3.4, 'a string', True]

切片同样支持负索引。例如,获取列表最后三个元素可以使用 [-3:]:

eclipse_dates = ['June 21, 2001', 'December 4, 2002', 'November 23, 2003',
        'March 29, 2006', 'August 1, 2008', 'July 22, 2009',
        'July 11, 2010', 'November 13, 2012', 'March 20, 2015',
        'March 9, 2016']
# TODO: Modify this line so it prints the last three elements of the list
print(eclipse_dates[-3:])

成员运算符与可变性

Python 提供了 in 和 not in 关键字来检查元素是否存在于序列中,返回布尔值。这同样适用于字符串:

print('this' in 'this is a string') # True
print('in' in 'this is a string') # True
print('isa' in 'this is a string') # False
print(5 not in [1, 2, 3, 4, 6]) # True
print(5 in [1, 2, 3, 4, 6]) # False

理解可变性(Mutability)至关重要。列表是可变对象,创建后可以修改其内容;而字符串是不可变对象,尝试直接修改字符串中的字符会引发 TypeError。

my_lst = [1, 2, 3, 4, 5]
my_lst[0] = 'one'
print(my_lst) # ['one', 2, 3, 4, 5]

对于字符串,若要“修改”,实际上是创建了一个新的字符串对象并重新赋值给变量:

greeting = "Hello there"
greeting[0] = 'M'  # 这将引发 TypeError

greeting = "Hello there"
greeting = 'Hi there'
print(greeting) # Hi there

列表实用方法与内置函数

实际应用:获取月份天数

利用列表索引,可以快速根据月份编号获取对应的天数。注意月份通常从 1 开始计数,而列表索引从 0 开始,因此需要减 1:

month = 8
days_in_month = [31,28,31,30,31,30,31,31,30,31,30,31]
# use list indexing to determine the number of days in month
num_days = days_in_month[month - 1]
print(num_days)

字符串处理:join 方法

join() 方法将字符串列表合并为一个字符串,使用指定的分隔符。例如,用换行符或连字符连接:

new_str = "\n".join(["fore", "aft", "starboard", "port"])
print(new_str)

fore
aft
starboard
port

name = "-".join(["García", "O'Kelly"])
print(name)

列表修改:append 方法

append() 将元素添加到列表末尾,直接修改原列表:

letters = ['a', 'b', 'c', 'd']
letters.append('z')
print(letters)

内置函数:len, max, min, sorted

  • len():返回元素数量。
  • max() 和 min():返回最大/最小元素。若列表包含无法比较的类型,结果未定义。
  • sorted():返回排序后的新列表,原始列表保持不变。
a = [1, 5, 8]
b = [2, 6, 9, 10]
c = [100, 200]
print(max([len(a), len(b), len(c)])) # 4
print(min([len(a), len(b), len(c)])) # 2

names = ["Carol", "Albert", "Ben", "Donna"]
print(" & ".join(sorted(names))) # Albert & Ben & Carol & Donna

names = ["Carol", "Albert", "Ben", "Donna"]
names.append("Eugenia")
print(sorted(names)) # ['Albert', 'Ben', 'Carol', 'Donna', 'Eugenia']

以上就是Python列表和成员运算符及列表相关方法的详细内容,更多关于Python列表操作技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表