列表

209 阅读4分钟

一、列表是什么

  • 列表由一系列按特定顺序排列的元素组成。
  • 在Python中,用方括号 [ ] 来表示列表,并用逗号分隔其中的元素。
  • 列表元素的访问使用
elements = ["A", "B", "C", "D"]
# 1.访问元素。(下标从 0 开始,-1 返回末尾元素。)
print(elements[0])
# A
print(elements[2])
# C
print(elements[-1])
# D

# 2.使用元素。
print("value:" + elements[0] + elements[1])
# value:AB

二、修改、添加和删除元素

  • 代码示例
elements = ["A", "B", "C", "D"]
print("原始数组:", elements)
# 原始数组: ['A', 'B', 'C', 'D']

# 1.修改元素。
elements[0] = "Z"
print("修改第一个元素后:", elements)
# 修改第一个元素后: ['Z', 'B', 'C', 'D']

# 2.添加元素。
elements.append("E")
print("添加元素到末尾:", elements)
# 添加元素到末尾: ['Z', 'B', 'C', 'D', 'E']

# 3.插入元素
elements.insert(0, "Y")
print("插入元素到开头:", elements)
# 插入元素到开头: ['Y', 'Z', 'B', 'C', 'D', 'E']

# 4.移除元素。
# 4.1 通过 del 指定位置移除。
del elements[-1]
print("通过 del 移除末尾元素:", elements)
# 通过 del 移除末尾元素: ['Y', 'Z', 'B', 'C', 'D']

# 4.2 通过 pop() 移除,但是可以使用到被移除的值。
var = elements.pop(0)
print("通过 pop 移除第一个元素:", var)
# 通过 pop 移除的元素: Y
print("通过 pop 移除后的列表为:", elements)
# 通过 pop 移除后的列表为: ['Z', 'B', 'C', 'D']

# 4.3 通过 remove() 指定值进行移除。
# 注意:remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
elements.remove("Z")
print("通过 remove 移除后的列表为:", elements)
# 通过 remove 移除后的列表为: ['B', 'C', 'D']

三、组织列表

  • 排序
elements = [1, 3, 4, 2]
print("原始列表:", elements)
# 原始列表: [1, 3, 4, 2]

# 1. sorted() 进行临时排序。
print("临时排序:", sorted(elements))
# 临时排序: [1, 2, 3, 4]
print("临时排序后:", elements)
# 临时排序后: [1, 3, 4, 2]

# 2. sort() 进行永久排序。
elements.sort()
print("永久排序后:", elements)
# 排序后: [1, 2, 3, 4]

  • 反转列表
elements = [4, 3, 2, 1]
print("原始列表:", elements)
# 原始列表: [4, 3, 2, 1]

elements.reverse()
print("反转列表:", elements)
# 反转列表: [1, 2, 3, 4]

  • 获取列表长度
elements = [4, 3, 2, 1]
print("列表长度为:", len(elements))
# 列表长度为: 4

四、遍历列表

  • for 遍历
elements = [1, 2, 3, 4]
# 列表所有元素遍历。
for e in elements:
    print(e)
    # 1
    # 2
    # 3
    # 4

  • 函数 range() 遍历
elements = [1, 2, 3, 4]
# 指定步长。(下标0开始,不包含2。)
for i in range(0, 2):
    print(elements[i])
    # 1
    # 2

  • range() 创建数字列表
# 10 以内的偶数。
elements = list(range(0, 11, 2))
print(elements)
# [0, 2, 4, 6, 8, 10]

# 求最大值、最小值、求和。
print(max(elements))
# 10
print(min(elements))
# 0
print(sum(elements))
# 30

  • 列表解析
# 列表解析将 `for` 循环和创建新元素的代码合并成一行,并自动附加新元素。
# 通过列表解析,求 1、2、3的平方。
squares = [num ** 2 for num in range(1, 4)]
print(squares)
# [1, 4, 9]

五、使用列表的一部分

  • 切片
elements = ["A", "B", "C", "D", "E"]

# 通过下标切片,取中间元素。
print(elements[1:-1])
# ['B', 'C', 'D']

# 未指定第一个索引则从头开始。
print(elements[:-1])
# ['A', 'B', 'C', 'D']

# 指定第二个索引则倒取,这里是取最后两个。
print(elements[-2:])
# ['D', 'E']

# 索引都未指定,取全部。
print(elements[:])
# ['A', 'B', 'C', 'D', 'E']

  • 遍历切片
elements = ["A", "B", "C", "D", "E"]

# 遍历切片,这里只取前三个元素。
for e in elements[:3]:
    print(e)
    # A
    # B
    # C

  • 复制列表
elements = ["A", "B", "C", "D", "E"]

# 通过不指定起止索引的切片方式,拷贝整个列表。
elements_bak = elements[:]
print(elements_bak)
# ['A', 'B', 'C', 'D', 'E']

六、元组

不可变的列表被称为元组。元组看起来犹如列表,但使用圆括号而不是方括号来标识。

  • 元素不能修改
elements = ("A", "B", "C", "D", "E")

# 试图修改元组的操作是被禁止的。
elements[0] = "X"
print(elements)
# TypeError: 'tuple' object does not support item assignment

  • 可以重新定义整个元组
elements = ("A", "B", "C", "D", "E")
print(elements)
# ('A', 'B', 'C', 'D', 'E')

# 虽然不能修改元组的元素,但可以给存储元组的变量赋值。
# 因此,如果要修改前述矩形的尺寸,可重新定义整个元组。
elements = ("X", "B", "C", "Y")
print(elements)
# ('X', 'B', 'C', 'Y')

  • 相比于列表,元组是更简单的数据结构。
  • 如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

七、结束语

“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶