博客
关于我
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 从入门到精通:30天速成教程到底有多狠?你能坚持下来吗?
    查看>>
    Python 从数据库中存储和检索密码的最安全方法
    查看>>
    Python语言及其应用 - 知识点遍历
    查看>>
    Python 优化提速的 8 个小技巧
    查看>>
    Python 余弦相似度与皮尔逊相关系数 计算
    查看>>
    python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
    查看>>
    python 使用filetype校验文件
    查看>>
    Python 使用flush函数将缓冲区数据立即写磁盘
    查看>>
    python 使用in判断不准确,in不好使
    查看>>
    Python 使用pandas 进行查询和统计详解
    查看>>
    Redis 配置文件redis.conf详细解释
    查看>>
    python网络爬虫(2)——scrapy框架的基础使用
    查看>>
    python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
    查看>>
    Python 使用哈希函数用于加密
    查看>>
    Python 依赖管理的革新——Poetry 深度解析
    查看>>
    python 保留精度及增加去除数字的千位分隔符(金额化数字)
    查看>>
    python 倒计时 9,8,7,。。。。。。0
    查看>>
    Python 入门开发学习笔记之数据的增删改查
    查看>>
    Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
    查看>>
    Python 八大排序算法合集
    查看>>