Python列表知识入门详解

本文详细介绍了Python列表的基础知识,包括列表的定义、增删改查操作、相关函数和方法,以及列表推导式的使用。通过实例解析了如何查询、修改、添加和删除列表元素,以及如何对列表进行排序和合并等高级操作。

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

一、什么是列表

  • 列表是容器型数据,用[]表示

  • 列表元素可以是任何数据类型,元素之间用逗号隔开

  • 列表是有序的、可变的。

    list1 = [1,2,3,4,'a','张三']
    

二、列表的增删改查

一、查
1、查询单个元素
  1. 使用下标查询,下标有正负两种之分,下标不可越界。正下标从0开始到n-1;负下标从最后一个开始,是负几就是倒数第几个。

    print(list[1])		#2
    print(list[-2])		#a
    
2、查询多个元素(切片)
  1. 列表[开始下标:结束下标:步长]
  2. 步长可以省略,省略步长那么步长前面的冒号一起省略,默认步长为1。列表[开始下标:结束下标]
  3. 若省略开始下标,那么取结束下标前的所有数据,冒号不省略。列表[:结束下标:步长]
  4. 若省略结束下标,那么从开始下标开始取剩余所有数据(包含开始下标),冒号不省略。列表[开始下标::步长]
  5. 从开始下标开始取值,但是取不到结束下标的值,只能取到结束下标的前一个,切片下标值可以越界。
  6. 若步长为正,那么从前往后遍历元素;若步长为负,则从后往前遍历元素。
list1[1:4:2]		#[2, 4]
list1[1:4]		#[2, 3, 4]
list1[:4:2]		#[1, 3]
list1[:4]			#[1, 2, 3, 4]
list1[1::2]		#[2, 4, '张三']
list1[1:]			#[2, 3, 4, 'a', '张三']
list1[-7:-1:-1]	#[]
list1[1:8:2]		#[2, 4, '张三']
list1 [::2]		#[1, 3, 'a']
二、改
  • 列表[index] = 值 - 修改某个特定下标的值
  • 列表[下标1:下标2] = [列表]- 修改某个范围的值,等号左右两边的值的个数可以不同
list1[2]=30					#[1, 2, 30, 4, 'a', '张三']
list1[1:3]=[10,20,30]		#[1, 10, 20, 30, 4, 'a', '张三']
三、增
  • append(元素) - 添加在列表的末尾
  • insert(下标,元素) - 在给定下标的前面添加元素
  • extend(序列) - 将序列中的元素添加到列表中(不会产生新的列表)
list1.append(60)			#[1, 10, 20, 30, 4, 'a', '张三', 60]
list1.insert(3,50)			#[1, 10, 20, 50, 30, 4, 'a', '张三', 60]
list1.extend([70,80,90])	#[1, 10, 20, 50, 30, 4, 'a', '张三', 60, 70, 80, 90]
四、删
  • list.pop(下标) - 取出元素,默认取最后一个,取出后原列表中该元素将不存在
  • del 列表[下标] - 删除列表中指定下标对应的元素(下标不能越界)
  • list.remove(元素) - 若元素不存在,程序会报错;如果指定的元素存在多个,只删最前面的那个
list1.pop(-1)		#90
del list1[2]		#[1, 10, 50, 30, 4, 'a', '张三', 60, 70, 80]
list1.remove(80)	#[1, 10, 50, 30, 4, 'a', '张三', 60, 70]

三、列表相关的函数操作

  • 列表1 + 列表2 将列表1和列表2中的元素合并并产生一个新的列表

  • 列表*N 或 N*列表 N是正整数,将列表中的元素重复n次产生一个新的列表

 list1 = [1,2,3]
 list2 = ['a','b','c']
 list1 + list2			#[1, 2, 3, 'a', 'b', 'c']
 list1 * 2				#[1, 2, 3, 1, 2, 3]
  • == 和 !=

    补充:is 的用法
    is 和 == 的区别:

    • == 判断的是存储的值是否相等;
    • is 判断的是数据存储的地址是否相等。

    注意:给不同的变量赋相等的数字或者字符串,赋值之前系统会检查这个数字或字符串是否存在,
    如果存在直接返回数据的地址给变量,不存在才开辟新的内存。

num1 = 10
num2 = 10
print(num1 == num2)     #True
print(num1 is num2)     #True

list3 = [1,2,3]
list1 == list3		#True
list4 = [2,1,3]
list1 == list4		#False  	注意列表是有序的,除了值相等以外,元素所在的位置也要相同
list1 is list3		#False
  • max(列表)
  • min(列表)

注意:此处列表中的元素类型必须一致,并且支持比较运算。

  • sorted(列表)- 将列表中的元素从小到大进行排序,产生一个新的列表,不会改变原列表。
  • sorted(列表,reverse = True) - 将列表中的元素从大到小进行排序,产生一个新的列表。

注意:此处列表中的元素类型必须一致,并且支持比较运算。

  • sum(列表) - 返回列表中所有元素的和

注意 :列表中的元素必须全部是数字

  • list(数据) - 将数据转换成列表
    • a. 所有的容器型数据类型的数据都可以转换成列表

    • b. 将容器中的元素全部转换成列表中的元素

四、列表的相关方法

  • 列表.clear - 清空列表

  • 列表.copy() - 复制列表中所有元素产生一个新的列表

  • 列表.copy() == 列表[:] == 列表+[] == 列表*1 - 浅拷贝

  • 列表.count(元素) - 统计指定元素在列表中出现的次数

  • 列表.extend(序列)- 将序列中的元素添加到列表中(不会产生新的列表)

  • 列表.index(元素) - 获取指定元素在列表中的下标值(正下标值)

    a. 如果元素不存在会报错
    b.如果元素有多个,只返回最前面那一个的下标值

  • 列表.index(元素,开始下标,结束下标)- 获取元素在列表中的下标,查找范围在开始下标到结束下标选中范围内(结束下标对应的值取不到)

  • 列表.reverse() 将列表中的元素倒序(不会产生新的列表)

  • 列表.sort()

  • 列表.sort(reverse=True)

五、列表推导式

  1. [表达式 for 变量 in 序列] (可以按照下面的方式理解)
   for 变量 in 序列:
     表达式

   让变量去序列中取值,每取一个值就创建列表中的一个元素,元素的值就是表达式的值
list2 = [x for x in range(4)]
print(list2)        #[0, 1, 2, 3]
  1. [表达式 for 变量 in 序列 if 条件语句]

      for 变量 in 序列:
        if 条件语句:
          产生元素
    
    让变量去序列中取值,每取一个值就判断条件语句是否为True,如果为TRUE就创建一个列表元素,元素的值就是表达式的值.
    
list7 = [x**2 for x in range(6) if x % 2 ]
print(list7)        #1,3,5的平方 [1, 9, 25]
  1. [表达式 for 变量1 in 序列1 for 变量2 in 序列 2]

    for 变量1 in 序列 1:
    for 变量2 in 序列2:
    产生一个列表元素(值还是表达式结果)

list8 = [x*y for x in range(4) for y in range(3)]
print(list8)		#[0, 0, 0, 0, 1, 2, 0, 2, 4, 0, 3, 6]
  1. [表达式 for 变量1 in 序列1 for 变量2 in 序列 2 if 条件语句]
list9 = [x+y for x in range(3) if x%2 for y in range(3)]
print(list9)		#[1,2,3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值