前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python入门第七讲】列表(List)

【Python入门第七讲】列表(List)

原创
作者头像
不惑
修改2024-02-20 17:30:38
6360
修改2024-02-20 17:30:38
举报
文章被收录于专栏:Python基础系列Goboy

在 Python 中,列表(List)是一种有序、可变的数据类型,用于存储一组元素。列表可以包含不同类型的元素,包括数字、字符串、甚至其他列表。列表是 Python 中最灵活且常用的数据结构之一,它融合了众多重要的编程概念。

列表是什么

在编程中,列表是一种数据结构,用于存储一组有序的元素。在 Python 中,列表是一种非常灵活和常用的数据类型,它可以包含不同类型的元素,包括数字、字符串、甚至其他列表。

特点和性质:

  1. 有序性: 列表中的元素是有序排列的,每个元素都有一个索引,可以通过索引来访问和操作元素。
  2. 可变性: 列表是可变的,也就是说,你可以修改列表中的元素、添加新元素或删除元素。
  3. 异构性: 列表可以包含不同类型的元素,例如整数、字符串、浮点数等。

如何创建列表

在Python中,使用方括号 [] 来创建一个列表,并在其中放置元素,并用逗号来分隔其中的元素。下面是一个简单的

列表示例

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 'a', 'b', 'c']

访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。

  • 使用索引访问元素,索引从 0 开始。
代码语言:python
代码运行次数:0
复制
print(my_list[0])  # 输出: 1
  • 列表切片:通过切片获取列表的子集。
代码语言:python
代码运行次数:0
复制
subset = my_list[1:4] print(subset)  # 输出: [2, 3, 'a']

索引从 0 而不是 1 开始

在 Python 中,列表的索引是从 0 开始的,而不是从 1 开始。这意味着第一个元素的索引是 0,第二个元素的索引是 1,以此类推。这是 Python 中常见的索引规则。

举个例子

代码语言:python
代码运行次数:0
复制
my_list = [10, 20, 30, 40, 50]

# 访问第一个元素
first_element = my_list[0]
print(first_element)  # 输出: 10

# 访问第三个元素
third_element = my_list[2]
print(third_element)  # 输出: 30

这种从 0 开始的索引规则是 Python 中一致的,包括字符串、元组等数据结构都是如此。这个规则对于许多编程语言来说都是相似的。

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素:

代码语言:python
代码运行次数:0
复制
my_list = [10, 20, 30, 40, 50]

# 访问-1元素
first_element = my_list[-1]
print(first_element)  # 输出: 50

列表也可嵌套

列表可以嵌套在其他列表中,形成二维甚至多维的数据结构。这种嵌套的结构可以更灵活地表示复杂的数据关系。下面是一个简单的二维列表的例子:

代码语言:python
代码运行次数:0
复制
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 访问二维列表中的元素
print(matrix[0][0])  # 输出: 1
print(matrix[1][2])  # 输出: 6

在上面的例子中,matrix 是一个包含三个列表的列表,每个内部列表都表示矩阵中的一行。可以使用两个索引来访问二维列表中的元素,第一个索引选择子列表,第二个索引选择子列表中的元素。

列表的嵌套可以继续扩展,形成更复杂的数据结构。这在处理表格、矩阵、图等数据时非常有用。

基础操作符

列表基础操作符可参照下表:

符号

说明

+

列表拼接

*

重复元素

in / not in

成员判断

[index:index]

列表截取

列表支持多种基础操作符,这些操作符包括:

1. 拼接操作符 +

代码语言:python
代码运行次数:0
复制
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 拼接两个列表
result = list1 + list2
print(result)  # 输出: [1, 2, 3, 4, 5, 6]

2. 重复操作符 *

代码语言:python
代码运行次数:0
复制
list1 = [1, 2, 3]

# 重复列表
result = list1 * 3
print(result)  # 输出: [1, 2, 3, 1, 2, 3, 1, 2, 3]

3. 成员运算符 innot in

代码语言:python
代码运行次数:0
复制
list1 = [1, 2, 3]

# 判断元素是否在列表中
print(2 in list1)    # 输出: True
print(4 not in list1) # 输出: True

4. 切片操作符 [:]

代码语言:python
代码运行次数:0
复制
list1 = [1, 2, 3, 4, 5]

# 获取子列表
subset = list1[1:4]
print(subset)  # 输出: [2, 3, 4]

列表基础函数

列表基础函数可参照下表:

函数

说明

len

计算列表的长度

max

返回列表中最大的元素

min

返回列表中最小的元素

sum

用于计算列表中所有元素的总和

sorted

函数用于对列表进行排序,返回一个新的列表

reverse

反转列表中的元素

count

统计某个元素在列表中出现的次数

index

查找某个元素在列表中的第一个索引位置

示例:

1. len()

len() 函数用于获取列表的长度(元素个数):

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 4, 5]
length = len(my_list)
print(length)  # 输出: 5

2. max()

max() 函数用于获取列表中的最大值:

代码语言:python
代码运行次数:0
复制
my_list = [3, 8, 1, 6, 2]
max_value = max(my_list)
print(max_value)  # 输出: 8

3. min()

min() 函数用于获取列表中的最小值:

代码语言:python
代码运行次数:0
复制
my_list = [3, 8, 1, 6, 2]
min_value = min(my_list)
print(min_value)  # 输出: 1

4. sum()

sum() 函数用于计算列表中所有元素的总和:

代码语言:python
代码运行次数:0
复制
my_list = [3, 8, 1, 6, 2]
sum_value = sum(my_list)
print(sum_value)  # 输出: 20

5. sorted()

sorted() 函数用于对列表进行排序,返回一个新的列表:

代码语言:python
代码运行次数:0
复制
my_list = [3, 8, 1, 6, 2]
sorted_list = sorted(my_list)
print(sorted_list)  # 输出: [1, 2, 3, 6, 8]

6. reverse()

reverse() 函数用于反转列表中的元素:

代码语言:python
代码运行次数:0
复制
my_list = [3, 8, 1, 6, 2]
my_list.reverse()
print(my_list)  # 输出: [2, 6, 1, 8, 3]

7. count()

count() 函数用于统计某个元素在列表中出现的次数:

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 2, 3, 2, 4, 2]
count_2 = my_list.count(2)
print(count_2)  # 输出: 4

8. index()

index() 函数用于查找某个元素在列表中的第一个索引位置:

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 4, 2, 5]
index_2 = my_list.index(2)
print(index_2)  # 输出: 1

这些函数能够帮助你更方便地操作和处理列表。

修改、添加和删除列表中的元素

在 Python 中,可以使用一些方法来修改、添加和删除列表中的元素。

修改元素

要修改列表中的元素,可以通过索引直接赋值新的值给该位置的元素。

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 4, 5]
my_list[2] = 99
print(my_list)  # 输出: [1, 2, 99, 4, 5]

添加元素

a. append()

append() 方法用于在列表的末尾添加一个元素。

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 输出: [1, 2, 3, 4]

b. insert()

insert() 方法用于在列表的指定位置插入一个元素。

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3]
my_list.insert(1, 99)  # 在索引 1 的位置插入 99
print(my_list)  # 输出: [1, 99, 2, 3]

删除元素

a. del 语句

del 语句用于删除列表中指定位置的元素。

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 4, 5]
del my_list[2]  # 删除索引 2 的元素
print(my_list)  # 输出: [1, 2, 4, 5]

b. remove()

remove() 方法用于删除列表中指定的值的第一个匹配项。

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 2, 4]
my_list.remove(2)  # 删除值为 2 的第一个匹配项
print(my_list)  # 输出: [1, 3, 2, 4]

c. pop()

pop() 方法用于删除列表中指定位置的元素,并返回该元素的值。如果不提供索引,默认删除末尾的元素。

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 4, 5]
popped_value = my_list.pop(2)  # 删除索引 2 的元素,并返回其值
print(my_list)  # 输出: [1, 2, 4, 5]
print(popped_value)  # 输出: 3

这些操作允许你在列表中进行灵活的元素修改和管理。

组织列表

在创建的列表中,元素的排列顺序常常是无法预测的,因为并非总能控制用户提供数据的顺序。这虽然在大多数情况下都是不可避免的,但经常需要以特定的顺序呈现信息。 有时候,希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。 Python提供了很多组织列表的方式,可根据具体情况选用。

使用方法 sort()对列表进行永久性排序

sort() 方法可用于对列表进行永久性排序。默认情况下,sort() 将按升序排列列表的元素。

代码语言:python
代码运行次数:0
复制
numbers = [4, 2, 8, 1, 6]
numbers.sort()
print(numbers)  # 输出: [1, 2, 4, 6, 8]

如果要按降序排列,可以将 reverse 参数设置为 True

代码语言:python
代码运行次数:0
复制
numbers = [4, 2, 8, 1, 6]
numbers.sort(reverse=True)
print(numbers)  # 输出: [8, 6, 4, 2, 1]

注意,sort() 是一个永久性的操作,将直接修改原始列表。如果你不想修改原始列表,可以使用 sorted() 函数生成一个新的已排序列表。

代码语言:python
代码运行次数:0
复制
numbers = [4, 2, 8, 1, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 2, 4, 6, 8]
print(numbers)  # 输出: [4, 2, 8, 1, 6] (原始列表未改变)

这种方式允许你在不改变原始数据的情况下获取已排序的版本。

倒着打印列表

要倒着打印列表,可以使用 reverse() 方法。这个方法会反转列表中元素的顺序,是一个永久性的操作。

代码语言:python
代码运行次数:0
复制
numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print(numbers)  # 输出: [5, 4, 3, 2, 1]

如果只是想临时倒着打印列表,而不修改原始列表的顺序,可以使用 [::-1] 切片方式。

代码语言:python
代码运行次数:0
复制
numbers = [1, 2, 3, 4, 5]
reversed_numbers = numbers[::-1]
print(reversed_numbers)  # 输出: [5, 4, 3, 2, 1]
print(numbers)  # 输出: [1, 2, 3, 4, 5] (原始列表未改变)

这样可以在需要时获得反转的版本,而不影响原始列表。

使用 extend 方法扩展列表

extend() 方法用于在列表的末尾一次性追加另一个可迭代对象(通常是另一个列表)的所有元素。

代码语言:python
代码运行次数:0
复制
list1 = [1, 2, 3]
list2 = [4, 5, 6]

list1.extend(list2)

print(list1)  # 输出: [1, 2, 3, 4, 5, 6]

在上述例子中,list1 的末尾追加了 list2 中的所有元素。这是一个原地操作,会修改原始列表。

另外,可以使用 += 运算符来实现相同的效果:

代码语言:python
代码运行次数:0
复制
list1 = [1, 2, 3]
list2 = [4, 5, 6]

list1 += list2

print(list1)  # 输出: [1, 2, 3, 4, 5, 6]

extend()+= 的区别在于,extend() 只接受可迭代对象作为参数,而 += 可以用于连接两个列表。

使用 copy 方法复制列表

在 Python 中,要复制一个列表而不改变原始列表,可以使用 copy() 方法或切片。

使用 copy() 方法:

代码语言:python
代码运行次数:0
复制
original_list = [1, 2, 3]
copied_list = original_list.copy()

print(copied_list)  # 输出: [1, 2, 3]

使用切片:

代码语言:python
代码运行次数:0
复制
original_list = [1, 2, 3]
copied_list = original_list[:]

print(copied_list)  # 输出: [1, 2, 3]

这两种方法都会生成原始列表的一个副本,对副本的任何修改都不会影响原始列表。

使用 clear 方法清空列表元素

clear() 方法用于清空列表中的所有元素,使其变为空列表。

代码语言:python
代码运行次数:0
复制
my_list = [1, 2, 3, 4, 5]
print(my_list)  # 输出: [1, 2, 3, 4, 5]

my_list.clear()
print(my_list)  # 输出: []

在上述例子中,clear() 方法将 my_list 中的所有元素清空,使其成为空列表。这是一个原地操作,会修改原始列表。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 列表是什么
    • 特点和性质:
    • 如何创建列表
      • 列表示例
      • 访问列表元素
      • 索引从 0 而不是 1 开始
        • 举个例子
          • 列表也可嵌套
          • 基础操作符
            • 1. 拼接操作符 +:
              • 2. 重复操作符 *:
                • 3. 成员运算符 in 和 not in:
                  • 4. 切片操作符 [:]:
                  • 列表基础函数
                    • 示例:
                      • 1. len()
                      • 2. max()
                      • 3. min()
                      • 4. sum()
                      • 5. sorted()
                      • 6. reverse()
                      • 7. count()
                      • 8. index()
                  • 修改、添加和删除列表中的元素
                    • 修改元素
                      • 添加元素
                        • a. append()
                        • b. insert()
                      • 删除元素
                        • a. del 语句
                        • b. remove()
                        • c. pop()
                    • 组织列表
                      • 使用方法 sort()对列表进行永久性排序
                        • 倒着打印列表
                          • 使用 extend 方法扩展列表
                            • 使用 copy 方法复制列表
                              • 使用 copy() 方法:
                              • 使用切片:
                            • 使用 clear 方法清空列表元素
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档