Python基础——序列(上)

列表的创建

列表中的元素可以各不相同,可以是任意类型,且Python的列表大小可变,可随时增加或缩小。

  • list方法
    使用list()可以将任何可迭代的数据转化成列表。
>>> a=list #创建一个空的列表对象
>>> a=list(range(4)) #转为列表
>>>a
[0,1,2,3]
  • range()创建整数列表
    语法格式为:range([start,]end[,step])
    其中,end参数必选,另外两个参数可选,默认分别为0、1。
  • 推导式生成列表
    涉及到for循环和if语句,运用举例如下:
>>>a = [x*2 for x in range(5)] #对x依次乘2,循环创建多个元素
>>>a
[0,2,4,6,8]
>>>a = [x*2 for x in range(50) if x%9==0] #通过if过滤元素,此处是筛选出能被9整除的数
>>>a
[0,18,36]

列表的增加和删除

增加

一些效率高,速度快的方法:

  • append()方法
    原地修改列表对象,真正的列表尾部添加新的元素,速度最快。
>>> a = [20]
>>> a.append(40)
>>> a 
[20,40]
  • extend()方法
    同样是原地操作,将目标列表的所有元素添加到本列表的尾部。这一方法需要特别注意格式,“()”内部为列表格式
>>> a = [20]
>>> a.extend([40,50])

影响处理速度(涉及列表元素的大量移动),但同样能增加列表元素的方法:

  • “+”运算符操作
    并不是真正的尾部添加元素,而是创建新的列表对象,运用格式如下:
>>> a = [20]
>>> a = a+[50] #地址发生变化,此时产生了新的对象
  • insert()插入元素等方法
    可以将指定元素插入到列表对象的任意指定位置,但插入位置后的所有元素会进行移动,效率较低,同样注意格式
>>> a = [19,20,4]
>>> a.insert(1,3) #在索引1处插入元素3
>>> a
[19,3,20,4]

删除

原理:在删除非尾部元素时会发生操作位置后面元素的移动。

  • del删除
    删除列表指定位置的元素:
>>> a = [1,2,3,4]
>>> del a[1] #删除索引为1的元素,此处为“2”
>>> a 
[1,3,4]
  • pop()方法
    删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。(相当于弹出元素)
>>> a = [1,2,3,4]
>>> a.pop() #()中填写索引,未填则默认最后一个
4
>>> a
[1,2,3]
  • remove()方法
    删除首次出现的指定元素,若不存在该元素则抛出异常。
>>> a = [1,2,4,2,3,7]
>>> a.remove(2)
>>> a
[1,4,2,3,7]

列表排序

  1. 修改原列表,不建新列表的排序
    进行升序、降序以及随机打乱顺序三种操作的举例如下:
>>> a = [1,4,2,3]
>>> a.sort() #默认是升序排列
>>> a
[1,2,3,4]
>>> a.sort(reverse=True) #降序排列
>>> a
[4,3,2,1]
>>> import random #导入新模块
>>> random.shuffle(a) #随机打乱
>>> a
[2,4,1,3]
  1. 建新列表的排序
    通过内置函数sorted()进行排序,这一方法生成新列表而不对原列表做修改。
>>> a = [1,4,2,3]
>>> id(a)
46016008
>>> a=sorted(a) #默认是升序排列
>>> a
[1,2,3,4]
>>> id(a)
45907848
#发现id不一样了,即这是的a已经不是原始的a了,而是生成的新对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值