博客
关于我
python列表元组
阅读量:797 次
发布时间:2023-03-07

本文共 2979 字,大约阅读时间需要 9 分钟。

Python 列表与元组

在 Python 中,列表和元组是最常用的数据结构,用于存储和操作有序数据。本文将从基础到高级功能详细讲解两者的使用方法。

列表的基本概念

列表在 Python 中是一种可变的有序数据结构,能够灵活容纳各种数据类型。通过索引和切片操作,我们可以方便地进行数据的插入、删除、修改等操作。

列表的创建

列表的创建非常简单,可以通过以下方式实现:

my_list = []
# 或者
my_list = list()

一旦创建之后,列表就是一个空的可变列表。为了初始化一个包含特定元素的列表,可以直接指定元素顺序:

my_list = ['Michael', 'Bob', 'Tracy']

如果你需要重复利用某个列表,可以通过赋值操作来实现:

my_list = ['Michael', 'Bob', 'Tracy']
another_list = my_list

此时,another_listmy_list 指向同一个对象,修改其中一个会影响另一个。

列表的索引操作

列表是一个有序的数据结构,通过索引可以直接访问特定位置的元素。索引从 0 开始,最后一个元素的索引是 -1。例如:

my_list = ['Michael', 'Bob', 'Tracy']
print(my_list[0]) # 输出: 'Michael'
print(my_list[-1]) # 输出: 'Tracy'

如果你想获取倒数第二个元素,可以使用索引 -2

print(my_list[-2])  # 输出: 'Bob'

列表的切片操作

切片操作允许我们提取列表中连续的元素。切片语法格式为 list[start:stop:step],其中:

  • start 是起始索引(默认为 0)
  • stop 是结束索引(默认为末尾)
  • step 是步长(默认为 1,正数表示从左到右,负数表示从右到左)

例如:

my_list = ['Michael', 'Bob', 'Tracy', 'admin']
print(my_list[:2]) # 输出: ['Michael', 'Bob']
print(my_list[1:-1]) # 输出: ['Bob', 'Tracy']
print(my_list[::-1]) # 输出: ['admin', 'Tracy', 'Bob', 'Michael']

切片操作非常有用,可以快速提取列表中部分元素。

列表的基本操作

追加元素

可以通过 append() 方法将元素添加到列表末尾:

my_list.append('admin')
print(my_list) # 输出: ['Michael', 'Bob', 'Tracy', 'admin']

插入元素

如果需要将元素插入到指定位置,可以使用 insert() 方法:

my_list.insert(2, 'Jack')
print(my_list) # 输出: ['Michael', 'Bob', 'Jack', 'Tracy', 'admin']

删除元素

要删除列表中的元素,可以使用 pop() 方法,默认删除最后一个元素:

print(my_list.pop())  # 输出: 'admin'
print(my_list) # 输出: ['Michael', 'Bob', 'Jack', 'Tracy']

如果需要删除指定位置的元素,可以使用 pop(index) 方法:

print(my_list.pop(1))  # 输出: 'Bob'
print(my_list) # 输出: ['Michael', 'Jack', 'Tracy']

要删除指定的元素而不关心其位置,可以使用 remove() 方法:

my_list = ['Michael', 'Bob', 'Jack', 'Tracy']
print(my_list.remove('Bob')) # 输出: None
print(my_list) # 输出: ['Michael', 'Jack', 'Tracy']

替换元素

如果需要替换指定索引位置的元素,可以直接赋值:

my_list = ['Michael', 'Bob', 'Jack', 'Tracy']
my_list[1] = 'Bob'
print(my_list) # 输出: ['Michael', 'Bob', 'Jack', 'Tracy']

列表中的不同数据类型

列表可以包含多种数据类型,例如:

my_list = ['apple', 123, True]
print(my_list) # 输出: ['apple', 123, True]

甚至可以包含嵌套列表:

s = ['c', 'c++', ['python', 'asp', 'php'], 'scheme']
print(s) # 输出: ['c', 'c++', ['python', 'asp', 'php'], 'scheme']

通过索引可以访问嵌套列表中的元素。例如:

p = ['python', 'asp', 'php']
s = ['c', 'c++', p, 'scheme']
print(s[2][1]) # 输出: 'asp'

元组的概念

元组(tuple)是一种与列表类似的有序数据结构,但有一些重要的不同:

  • 不可变性:元组的元素不能被修改,一旦定义,内容无法改变。
  • 不可扩展:元组没有 append()insert() 等方法,无法添加或插入新元素。
  • 默认可变性:元组的元素如果是可变的(如列表),那么元组整体也是可变的。
  • 元组的创建

    元组可以通过括号 () 创建。例如:

    classmates = ('Michael', 'Bob', 'Tracy')

    一旦定义,classmates 不能再修改:

    classmates[1] = 'Alice'  # 会报错

    列表与元组的区别

    特性 列表 元组
    可变性 可变 不可变
    扩展性 可以添加元素 不可扩展
    默认值 [] ()
    性能 内部实现为动态数组 内部实现为固定数组

    元组的不可变性

    元组的不可变性带来了更高的安全性,防止了无心的修改错误。因此,在需要确保数据不变的场景下,元组比列表更合适。

    元组的陷阱

    在使用元组时需要注意以下几点:

  • 单个元素的定义:为了避免与数学公式中的小括号混淆,单个元素的元组必须加逗号:
  • t = (1)  # 解释为 1,而不是元组 (1)
    t = (1,) # 正确定义为元组 (1)
    1. 可变元素:如果元组包含可变元素(如列表),那么元组整体也是可变的:
    2. t = ('a', 'b', ['A', 'B'])
      t[2][0] = 'X' # 修改后,t 变为 ('a', 'b', ['X', 'B'])
      1. 默认值和初始化:元组可以初始化为空:
      2. t = ()

        总结

        列表和元组都是 Python 中常用的数据结构,但在不同的场景下更适合使用一种。列表适合需要频繁修改和扩展的场景,而元组则适合需要确保数据不可变和安全的场景。通过理解两者的特性和使用场景,你可以更高效地进行数据处理。

    转载地址:http://veofk.baihongyu.com/

    你可能感兴趣的文章
    Python基础:11变量作用域和闭包
    查看>>
    Python基础: with模式和__enter__ 和 __exit__
    查看>>
    Python基础(7)--函数
    查看>>
    Python基础部分-while循环,格式化输出
    查看>>
    Python基础语法:顺序语句结构
    查看>>
    Python基础语法:理解代码与写代码
    查看>>
    Python基础语法:条件和分支
    查看>>
    Python基础语法:基本数据类型(数字类型和布尔类型)
    查看>>
    Python基础语法:基本数据类型(列表)
    查看>>
    Python基础语法:内置函数
    查看>>
    Python基础语法:你不得不知的几种变量类型
    查看>>
    Python基础语法教程,零基础入门到精通,看完这一篇就够了
    查看>>
    Python基础语法与执行脚本的3种方式
    查看>>
    python基础语法
    查看>>
    python基础语法
    查看>>
    python系列【仅供参考】:python测试开发基础---multiprocessing.Pool
    查看>>
    Python基础综合练习
    查看>>
    Python基础练习之一输出10000以内的阿姆斯特朗数
    查看>>
    Python基础系列讲解—动态类型语言的特点
    查看>>
    python基础系列四:字符串,列表,字典,元组之间的转换
    查看>>