python学习笔记2-六种标准数据类型2

3.列表(List)

  • 可变,是序列。

  • 可变:可对其中的元素进行修改,不会copy后再改,而是在原本的基础上修改。

  • 列表用方括号定义,没有元素类型限制

  • 列表变量也会占内存,其中元素若没被定义,则会是随机存放在内存中某个地址下,列表变量会引用元素的地址,并不是连续的。

  • 列表修改值

若仅改变列表中的一个元素,则直接使用索引,lst[index] = object。

若改变列表中的多个元素,则需使用切片方式,且赋值需为可迭代对象,lst[start :end: step] = interable 。

若step=1时,步长可以不应,但若step不等于1时,替换的元素必须同被替换的元素个数一致,不然会报错。

注意:当使用元组进行替换时,当元组内只有一个数字,则需要在其之后添加逗号,由于()也有优先级的作用,故程序会将其作为括号解释,则此时此变量仅为数字,不再是可迭代值,就会报错。

lst3 = ['34', 'gkj', False, [134, 'dff', True], 343]
lst3[:3] = 'dfd',445,'444' 
print(lst3) # ['dfd', 445, '444', [134, 'dff', True], 343] 
lst3[1::2] = ['34', 'gkj']
print(lst3) # ['dfd', '34', '444', 'gkj', 343]
lst3[1:3] = 'djgl' 
print(lst3) # ['dfd', 'd', 'j', 'g', 'l', 'gkj', 343] 
lst3[2] = [] #对象 
print(lst3) # ['dfd', 'd', [], 'g', 'l', 'gkj', 343] 
lst3[1:3] = [] #可迭代对象 
print(lst3)# ['dfd', 'g', 'l', 'gkj', 343] 
lst3[0:0] = ['hrrs'] #在第一个元素前面追加 
print(lst3) # ['hrrs', 'dfd', 'g', 'l', 'gkj', 343] 
lst3[len(lst3):] = '🐱'#末尾追加
print(lst3) #['hrrs', 'dfd', 'g', 'l', 'gkj', 343, '🐱']
  • 封包:当多个对象同时赋值给一个变量时,此时会自动将这多个对象打包成一个元组。

  • 列表内存自动管理

list函数

list([iterable])

  • 调用list()类,功能是:将一个iterable对象转行为列表并返回,如果没有实参,则返回空列表

print(list()) #[] 
print(list("🐱3🐕df🐒2")) #['🐱', '3', '🐕', 'd', 'f', '🐒', '2'] 
print(list((4, 6, 7))) #[4, 6, 7] 
print(list({'country': 1, 'city': 2})) #['country', 'city'] 
print(list({'g', 'd', 'hhh', 394, 246})) #['hhh', 'g', 246, 394, 'd']

列表的方法(定义在列表这个类下的函数)

list.append(object)

  • 在列表末尾追加一个元素,无返回值,相当于a[len(a):] = [x]

list.extend(iterable)

  • 使用iterable中的所有元素来扩展列表,无返回值,相当于a[len(a):] = iterable

list.insert(i,x)

  • i:要插入的元素的索引
  • x:要插入的元素
  • 功能:在指定位置插入一个元素,无返回值
lis4 = ['hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ']
lis4.append(6)
lis4.append([' ',' '])
print(lis4) #['hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ', 6, [' ', ' ']]
lis4.extend('dfs')
print(lis4) #['hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ', 6, [' ', ' '], 'd', 'f', 's']
lis4.insert(0,'ffff')
print(lis4)#['ffff', 'hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ', 6, [' ', ' '], 'd', 'f', 's']

list.sort([key],reverse=False)

  • key:指定一个函数,在排序之前,列表每个元素先应用这个函数,再根据返回值对原数据进行排序
  • reverse:默认为False,代表升序,指定为True则为降序
  • 对原列表进行排序,无返回值

list.reverse()

list.count(x)

  • 返回元素x在列表中出现的次数

list.index(x[,start[,end])

  • x:要找的值
  • start:起始索引,默认为0
  • end:结束索引(闭区间),默认为len(list)
  • 功能:返回从左边开始第一次找到指定值时的正向索引,找不到报错

list.pop([i])

  • i:要删除元素的索引
  • 删除列表中指定索引的元素并返回该元素
  • 如果没有指定索引,将会删除并返回列表中的最后一个元素
# 已知 lst = [1, 3, 2, 6, 4], 程序实现: 删除lst元素中的最大值和最小值(不考虑多个最值情况)
lst = [1, 3, 2, 6, 4 ]
lst.sort()
print(lst)#[1, 2, 3, 4, 6]
lst.pop()
lst.pop(0)
print(lst)#[2, 3, 4]

list.remove(x)

  • 删除列表中从左往右遇到的第一个x元素,无返回值
  • 如果没有这样的元素,则报错

list.copy()

  • 返回列表的一个浅拷贝,等价于a[:]

del()

  • 解除引用关系
  • # 已知 lst = [1, 3, 2, 6, 4], 程序实现: 删除lst元素中的最大值和最小值(不考虑多个最值情况)
    lst = [1, 3, 2, 6, 4 ]
    lst.sort()
    print(lst)#[1, 2, 3, 4, 6]
    del lst[0], lst[len(lst)-1]
    print(lst)#[2, 3, 4]
    

list.clear()

  • 移除列表中所有元素,无返回值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白的程序空间

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

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

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

打赏作者

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

抵扣说明:

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

余额充值