python笔记3_列表&序列常用操作

本文介绍了Python中的列表操作,包括创建、修改、添加元素、排序以及使用bisect模块进行二分搜索和插值。强调了列表作为可变类型的特点,如append和insert方法,以及sort函数的使用,同时提到了切片和步进值在操作列表时的作用。

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

列表list

list_a = [1,2,3,None] # [1, 2, 3, None]

list函数,将其他序列转换为列表

tup = 'a','b','c'
list_b = list(tup) # ['a', 'b', 'c']

与元组不同,列表是可变类型,对元素进行更改可以直接改变对象

list_b[0] = 'fff' 
list_b # ['fff', 'b', 'c']

列表可以用内置函数随意添加&插入元素并扩容(尽管众所周知insert会比较吃力)

list_a.append('a') # 增
list_a.insert(0,'ww') # 插
list_a.pop(3) # 按位置去除
list_a.remove('ww') # 去除第一个查找到的元素

innot in 判断元素是否在序列中

1 in list_a # True
20 not in list_a # True

+extend 两种合并列表的方法

区别在于,前者代价更大,创建新列表并复制对象;后者仅对原对象添加元素

list_a+list_b
list_a.extend(list_b)

排序(改变原列表)

list_c = [9,8,4,7,3,0,5]
list_c.sort() 
list_c # [0, 3, 4, 5, 7, 8, 9]

二级排序key,如字符串长度

list_b.sort(key = len)
list_b # ['b', 'c', 'fff']

bisect模块

bisect模块可以实现二分搜索和已排序列表的插值

bisect.bisect会找到元素应当被插入的位置,并保持序列排序,而bisect.insort将元素插入到相应位置

import bisect
list_d = [1,2,3,4,5,6,7,8,9]
bisect.bisect(list_d,6) # 6
bisect.insort(list_d,5)
list_d # [1, 2, 3, 4, 5, 5, 6, 7, 8, 9]

 注意:bisect模块不会检测数列是否已排序,对未排序的数列使用也不会报错,不过结果会有错误

:切片

seq = [2,4,7,3,0,3,6]
# 左包右不包
seq[1:3] # [4, 7]
seq[:3] # [2, 4, 7]
seq[3:] # [3, 0, 3, 6]

负数从右开始数

seq[:-1] # [2, 4, 7, 3, 0, 3]

步进值step可以在第二个冒号后面使用

seq[::2] # [2, 7, 0, 6]

可以利用切片步进值特性,对列表或元组进行翻转

seq[::-1] # [6, 3, 0, 3, 7, 4, 2]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Woovong

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

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

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

打赏作者

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

抵扣说明:

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

余额充值