Python

发布于:2025-03-29 ⋅ 阅读:(28) ⋅ 点赞:(0)

序列

  • 序列是一种数据存储方式,用来存储一系列数据。在内存中,序列就是一块用来存放多个值的连续的内存空间。
  • 序列中存储的是对象的地址,而不是对象的值。
  • 序列包括列表、元组、字典、集合、字符串

列表

  • 列表:用于存储任意数目、任意类型的数据集合。
  • 列表是内置可变序列,是包含多个元素的有序连续的内存空间。
    • 列表的标准语法结构a = [10,20,30,40]        其中10,20,30,40这些称为列表a的元素
  • 列表中的元素可以各不相同,可以是任意类型。如 a = [10,20,'abc',True]
  • Python的列表大小可变,根据需要随时增加或缩小。

列表的创建

  1. 基本语法 [ ] 创建
    a = [10,20,'yiyangqianxi','llily']
    b = []    #创建一个空的列表对象
    print(a)
  2. list()创建:使用list()可以将任何可迭代的数据转化成列表。
    a = list()    #创建一个空的列表对象
    b = list(range(10))    #结果:[0,1,2,3,4,5,6,7,8,9]
    b = list("lily,Tom")    #结果:['l','a','o','q','i',',','s','x','t']
  3. range()创建整数列表语法格式为
    range([start,]end[,step])
    start参数:可选,表示其实数字。默认是0
    end参数:必选,表示结尾数字
    step参数:可选,表示步长,默认为1

    🎈注意:range()返回的是一个range对象,而不是列表。需要通过list()方法将其转换成列表对象。(包头不包尾)

    a = list(range(3,15,2))    #结果:[3,5,7,9,11,13]
    b = list(range(15,9,-1))    #结果:[15,14,13,12,11,10]
    c = list(range(3,-4,-1))    #结果:[3,2,1,0,-1,-2,-3]
    print(a,b,c)
  4. 推导式生成列表:十分方便,结合for循环和if语句使用

    #循环创建多个元素[0,2,4,6,8]
    a = [x*2 for x in range(5)]
    
    #通过if过滤元素[0,18,36,54,72,90,108,126,144,162,180,198]
    b = [x*2 for x in range(100) if x%9==0]
    
    print(a,b)

列表元素的添加方式

  • 列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这一特点涉及列表元素的大量移动,效率较低。
  • 除非必要,一般只在列表的尾部添加元素或删除元素,提高列表的操作效率。
append()
  • 原地修改列表对象,列表尾部添加新的元素,速度最快,推荐使用。
    a = [20,40]
    a.append(80)
    print(a)    #结果:[20,40,80]

insert()
  • 可以将指定元素插入到列表对象的任意制定位置。
  • 使用insert()会让插入位置后面所有的元素进行移动,影响处理速度,涉及大量元素时们尽量避免使用。类似函数有:remove()、pop()、del(),这些函数在删除非尾部元素时也会发生操作位置后面元素移动。
    a = [10,20,30]
    a.insert(2,100)
    print(a)    #结果:[10,20,100,30]
    

extend()
  • 将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。
    a = [20,40]
    print(id(a))
    b = [50,60]
    a.extend(b)    #原对象修改
    print(id(a))
    a = a+b    #产生新对象
    print(id(a))

+运算符操作
  • 尾部添加 生成新列表
  • 不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中。会涉及大量的复制操作,对于操作大量元素不建议使用。
    a = [20,40]
    print(id(a))
    a = a + [50]
    print(id(a))    #两次地址不一样,创建了新的对象

乘法扩展
  • 使用乘法扩展列表,生成一个新列表,新列表元素是原列表元素的多次重复。
    a = ['lily',100]
    b = a*3
    print(a)    #结果:['lily',100]
    print(b)    #结果:['lily',100,'lily',100,'lily',100]

  • 适用于乘法操作的还有字符串、元组。
    a = 'lily'
    b = a*3
    print(b)    结果为:'lilylilylily'

列表元素的删除

  • 删除元素底层是:元素的拷贝
del删除
  • 删除列表指定位置的元素
    a = [100,200,888,300,400]
    del a[2]
    print(a)    #结果:[100,200,300,400]

pop()方法 
  • pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
    a = [10,20,30,40,50]
    b = a.pop()    #结果:b1 = 50
    print(a,b)    #结果:[10,20,30,40] 50
    c = a.pop(1)    
    print(a,c)    #结果ÿ

网站公告

今日签到

点亮在社区的每一天
去签到