python基础(五)--序列

本文介绍了Python中的序列数据结构,包括列表、元组、字典和集合的基本概念、创建与操作。重点讲解了列表的创建、删除、遍历和列表推导式,元组的不可变特性,字典的增删改查操作,以及集合的无序和互异性。此外,还提到了生成器推导式及其在序列中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列是Python中最基本的数据结构。Python中有六个序列的内置类型,分别是列表、元组、字符串、Unicode字符、buffer对象、xrange对象,最常用的是列表和元组。

列表和列表推导式

列表就是用逗号(,)分割的一系列数据用方括号([])括起来,逗号分割的数据称为元素,每个元素都有索引,用来记录元素所在位置,索引从0开始。同时列表的元素也可以是列表。

列表创建与删除

  1. 创建

    列表定义格式:

    列表名=[元素1,元素2,...]
    

    空列表定义:

    列表名=[]
    #或者
    列表名=list()
    

    例如:

    list1=[1,2,3,4,5]
    list2=['a','b','c','d',525]
    
  2. 删除

    • 根据索引删除某个元素:

      del 列表名[索引]
      #例如:
      list2=['a','b','c','d',525]
      del list2[2]   #删除列表中第三个元素
      print list2
      #  结果为list2=['a','b','d',525]
      
      
    • 删除列表中某些连续元素格式:

      del 列表名[[头下标]:[尾下标]]
      #例如:
      list2=['a','b','c','d',525]
      del list2[2:4]   #删除列表中第3个到第4个元素
      print list2
      #  结果为list2=['a','b',525]
      
      

      删除的是从头下标开始,到尾下标结束之前的内容。省略头下标默认是从0开始,省略尾下标则是默认到结尾处的所有元素。

    • 删除列表中所有元素:

      del 列表名[[头下标]:[尾下标]]
      #例如:
      list2=['a','b','c','d',525]
      del list2[:]   #删除列表中所有元素
      print list2
      #  结果为list2=[]
      
  3. 列表的+*in运算

    列表的+*运算与字符串相同,+用于组和列表,*同于重复列表.in用于判断某个元素是否在列表中。

    例如:

    ['a','b','c']+[1,2,3]    # 结果为['a','b','c',1,2,3]
    [1,2,3]*3                # 结果为[1,2,3,1,2,3,1,2,3]
    1 in [1,2,3]             # 结果为True
    
  4. 列表遍历

    for 变量 in 列表:
        表达式
    

    例如:

    list1=[1,2,3,4,5]
    for i in list1:
        print(i,end='')
        # 结果为1 2 3 4 5
    

列表常用方法

  1. 相关内置函数

    函数描述
    len(list)返回列表长度(即列表元素个数)
    max(list)返回列表中最大的元素
    min(list)返回列表中最小的元素
    list(sep)将元组、字典、集合、字符串转换为列表
  2. 列表方法

    方法描述
    list.append(obj)向列表末尾添加对象
    list.count(obj)统计某个元素在列表中出现的次数
    list.extend(sep)在列表末尾添加另一个序列的值(用新列表扩展原来的列表)
    list.index(obj)返回列表中查找某个值第一个匹配项的索引值
    obj=list.pop()移除列表中的一个值(默认为最后一个),并返回移除的值
    list.remove(obj)移除列表中第一个匹配项
    list.reverse()将列表翻转
    list.sort()对列表进行排序
    list.clear()请空列表
    list.copy()复制列表

列表推导式

列表推导式是使用非常简洁的方式来快速生成满足特定需求的列表,代码具有非常强的可读性,运行速度也快.

格式:

[表达式 for 变量 in 列表]
#或者
[表达式 for 变量 in 列表 if 条件]
#相当于
result = []
for 变量 in 列表:
    if 条件:
        result.append(表达式)

元组与生成器推导式

Python元组与列表类似,不同之处在于元组不能修改。元组的访问速度和处理速度更快,元组是在小括号()中添加元素。

元组创建

  1. 定义格式:

    元组名 = (元素1,元素2,...)
    # 例如
    t1 = (1,2,3,4,5)
    

    空元组定义: 元组名=()或者元组名=tuple()

    如果元组只有一个元素时,需要在元素后添加逗号,否则括号会被当做运算符。

  2. 元组访问

    跟列表一样使用索引访问。

  3. 元组的删除

    元组中的元素不能修改,也不能删除。删除操作只能删除整个元组。使用del删除整个元祖.

  4. 元组的+*in运算

    元组的+*运算与列表相同,+用于组和元组,*同于重复元组.in用于判断某个元素是否在元组中

  5. 元组遍历

    元组遍历方式与列表一样

  6. 元组切片

    元组切片除了不能改变元素的值与列表相同

  7. 元组内置函数

    元组内置函数中tuple()是将其他列表转换成元组,其他与列表相同.

生成器推导式

生成器推导格式:

(结果 for 变量 in 可迭代对象 if 筛选对象)

注意:

  • 生成器推导式可以直接获取成生成器对象,生成器可以直接进行for循环,生成器具有惰性机制
  • 生成器对象既不是列表也不是元组,如果想要让其变成列表或者对象,需要使用list()或者tuple()函数进行转换
  • 可以使用_ _next_ _()或者内置函数访问生成器对象,但是当所有元素访问完成,如果需要从新访问元素,必须重新创建生成器

字典

Python中字典是另一种可变容器模型,而且可以存储任意类型对象。

字典的创建、添加、修改与删除

  1. 创建字典

    格式:

    字典名 = {'key1':'value1','key2':'value',...}
    

    字典中的每个元素都是‘键(key)值(value)对’,每个键值对使用:分割,每个元素之间用,分割.

    其中键(key)必须是唯一的,如果重复,最后一个的值会替换前边相同键的值。

  2. 添加与修改字典元素

    格式:

    字典名[] =

    当前键已经存在会修改字典中该键原有的值,不存在时,会创建新的键值对.

  3. 删除字典的元素

    格式:

    • 删除某个键值对

      del 字典名[]
      
    • 清空字典中所有元素

      字典名.clear()
      
    • 删除字典

      del 字典名
      
  4. 内置函数及其方法

    函数描述
    len(dict)返回字典元素的个数,即键的个数
    str(dict)输出字典,以可打印的字符串输出
    type(variable)返回输入的变量类型
    dict.clear()清空字典
    dict.copy()复制字典
    dict.fromekey(sep,val)以sep中元素为键,val中的元素为值,创建一个新字典
    dict.get(key)返回指定键的值,如果键不存在返回None
    dict.items()返回字典中的所有键值对
    dict.keys()返回字典中的所有键
    dict.update(dict2)将dict2合并到dict
    dict.values()返回字典中的所有值

集合

Python中的集合(set)是一个无序且不重复的序列.

集合基础知识

Python的集合也具备数学中集合的特性:确定性、互异性、无序性。

集合创建格式:

集合名 = {value1,value2,...}
# 或者
集合名 = set({value1,value2,...})

注意:创建空集合必须用set(),而不是{},因为{}使用来创建空字典的。集合中的元素可以是不同的类型(数字、元组、字符串),但不可以是可变元素(列表,集合,字典)。

集合操作与运算

函数描述
len(s)返回集合元素个数
str(s)输出集合以字符串表示
set(value)生成可变的集合
frozenset(value)生成不可变集合
s.copy()复制集合
s.update(t)将t中的元素添加到s
s.add(obj)将obj添加到集合s
s.remove(obj)将obj从集合s中删除,如果obj不存在一发异常
s.discard(obj)将obj从集合s中删除,如果obj不存在不影响
s.pop()删除并返回一个不确定元素
s.clear()清空集合

序列间的区别

特征\类别列表元组字典集合
英文listtupledictset
可读读写只可读读写读写
是否重复是(键不可重复)
存储键值对键(不可重复)
是否有序有序有序无序无序
添加append()不能添加d[key]=valueadd()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哈钟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值