资讯专栏INFORMATION COLUMN

捋一捋Python中的List(下)

instein / 1795人阅读

摘要:以上函数默认会对一个数字组成的数组进行按数字面值大小排序下午雷学委列表的其他函数持续学习持续开发效果如下,读者可以仔细看看是否如学委所说。

正式的Python专栏第27篇,同学站住,别错过这个从0开始的文章!

上篇学委对照tuple文章的操作一一罗列了list列表数据的相应的操作

这次我们继续把list的其他操作看完。

list比tuple多了这些操作支持

前面学委提到tuple(元组)就是焊死了的一串串车厢,list支持元素编辑,明显灵活多了。

我们先看看删除操作,python中的list就支持了3中删除元素的操作。

假设我们定义一个列表对象 list_obj, 那么我们可以执行下面任意一个操作,进行元素删除。

del list_obj[下标]list_obj.remove(某个元素值)list_obj.pop(下标) #返回元素值

好,我们看看下面完整代码:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/31 10:36 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷学委# @XueWeiTag: CodingDemo# @File : list_demo4.py# @Project : hello# 删除列表元素mylist = [1, 0, 2, 4, "雷学委"]print("mylist:", mylist)del mylist[0]print("after remove first element, mylist:", mylist)mylist.remove("雷学委")print("after remove first element, mylist:", mylist)removed_value = mylist.pop(1)  # 移除并返回的元素值print("after remove first element, mylist:", mylist)print("removed value:", removed_value)

效果如下:

特别需要注意的是:删除元素不能超过list的下标范围,否则报错!

除了删除,list怎么添加/扩充元素呢?

先不说修改的,list也支持定位查找元素,我们先看看。

list_obj.index(某个元素值) #通过某个元素值定位到第一个匹配的下标,从0位置开始找。

假设list_obj = [3, 2, 1] 那么list_obj.index(2) 则是什么?

答案是:1。

好,我们继续说插入新元素。

# python中的list支持下面两种方式追加元素list_obj.insert(指定下标, 元素)list_obj.append(元素) #末尾追元素

那么一次性追加多个,或者直接扩充某个列表到现有列表呢?

我们找到了extend函数,使用list_obj.extend(补充列表) 就能把list_obj直接扩充了,效果是依次追加补充列表的元素到末尾。

说这么多操作,我们直接复制运行下面的代码看看:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/31 10:36 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷学委# @XueWeiTag: CodingDemo# @File : list_demo5.py# @Project : hello# 列表的其他函数mylist = [6, 6, 6]print("mylist:", mylist)mylist.append("雷学委")print("mylist:", mylist)print("列表多少个6?:", mylist.count(6))print("第一个6的位置下标?:", mylist.index(6))mylist.insert(2, 1024)print("第一个1024的位置下标?:", mylist.index(1024))last = mylist.pop() #删除操作前面说过了,这几举例一个。print("最后的元素是:",last)print("mylist:", mylist)# 直接追加新列表mylist.extend(mylist)  # 相当于mylist = mylist * 2print("mylist:", mylist)mylist.extend(["持续学习", "持续开发"])print("mylist:", mylist)

这是代码运行效果:

非常简便,我们继续看看列表元素排序

list的排序

前面说的都是编辑操作,list也可以进行数据排列,也就是按照一定逻辑进行顺序排列。

list提供了一个sort函数和reverse函数。

先说简单的,reverse函数相当于把整个串串车厢直接调头。也就是list:[1,2,3] 经过reverse函数处理后,变成了[3,2,1]。

sort则更加弹性,默认安装元素面值(比如数字,数字串),还支持传入一个lambda函数,指定排序逻辑。

以上函数默认会对一个数字组成的数组进行按数字面值大小排序

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/10/31 10:36 下午# @Author : LeiXueWei# @CSDN/Juejin/Wechat: 雷学委# @XueWeiTag: CodingDemo# @File : list_demo6.py# @Project : hello# 列表的其他函数mylist = [2, 3, 1]#mylist = ["2", "3", "1"]mylist.sort()print("mylist:", mylist)mylist.extend(["持续学习", "持续开发"])print("mylist:", mylist)mylist.sort(key=lambda e: len(str(e)), reverse=True)print("sorted mylist:", mylist)mylist.reverse()print("reversed mylist:", mylist)

效果如下,读者可以仔细看看是否如学委所说。

特别注意:学委上面示例代码也展示了,如果一个列表内元素不是同一类型(都是数字,都是字符串或者都是某个类型),开发者必须实现一个lambda函数给sort函数作为参考进行排序。

总结

list有很多功能,进行元素的操作(添加/删除/定位)等非常方便。

而且还能轻易扩充,排序,逆序等,这让list的使用非常广泛,每个学习python的务必多敲代码,掌握熟练。

对了,喜欢Python的朋友,请关注学委的 Python基础专栏 or Python入门到精通大专栏

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
欢迎关注微信,点赞支持收藏!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123378.html

相关文章

  • 一捋服务器端渲染和客户端渲染的区别

    摘要:常听到服务器端渲染和浏览器端渲染这兄弟俩,一直不是很理解,尤其对于我这种没有后台开发经验的小白来说,理解起来异常困难,最近花时间查了很多资料,总算弄明白了,于是整理下,加深记忆。 常听到服务器端渲染和浏览器端渲染这兄弟俩,一直不是很理解,尤其对于我这种没有后台开发经验的小白来说,理解起来异常困难,最近花时间查了很多资料,总算弄明白了,于是整理下,加深记忆。这边文章是参考下面的文章做的总...

    muzhuyu 评论0 收藏0
  • 一捋服务器端渲染和客户端渲染的区别

    摘要:常听到服务器端渲染和浏览器端渲染这兄弟俩,一直不是很理解,尤其对于我这种没有后台开发经验的小白来说,理解起来异常困难,最近花时间查了很多资料,总算弄明白了,于是整理下,加深记忆。 常听到服务器端渲染和浏览器端渲染这兄弟俩,一直不是很理解,尤其对于我这种没有后台开发经验的小白来说,理解起来异常困难,最近花时间查了很多资料,总算弄明白了,于是整理下,加深记忆。这边文章是参考下面的文章做的总...

    chunquedong 评论0 收藏0
  • 一捋这些年一起薅过的羊毛 – 包含永久免费vps、域名等

    摘要:特点,永久免费,数据中心多达个,之前好用的首尔和东京因为众多的涌入导致线路拥堵不堪此外机型可自由分配个,内存,最大空间容量和的带宽。是乌克兰官方为个人提供的免费二级域名后缀,任何人都可以申请。由乌克兰官方运行,稳定性有保障。作为一个mjj,最喜欢做的事情就是薅羊毛,这篇文章就来整理一些特别优质的,不容错过的羊毛!算是薅羊毛的一个指南!! 一:永久VPS篇 这里整理一些永久...

    mrli2016 评论0 收藏1
  • 一捋React的生命周期

    摘要:卸载阶段组件卸载和销毁老版生命周期之前的生命周期初始化阶段涉及个钩子函数这些方法会在组件初始化的时候被调用,只跟实例的创建有关。 前言:React 的版本从 v15 到 v16.3 ,再到v16.4,现在最新的版本是 v16.8了。其中最大的变化可能是React Hooks的加入,而最令人困惑的却是它的生命周期,新旧生命周期函数混杂在一起,难免会让许多新来者有很多困惑。所以这一篇我们来...

    MobService 评论0 收藏0
  • python 中type和object的关系

    摘要:这说明类已经处于继承链条的顶端,是所有类的父类。这就是说这一元类的父类是。我们来捋一捋,也就是说类是由元类创建的,但是类又继承了类。元类的类则是由元类自身创建的。 学习python的同学都知道这么几句话 object类是所有新式类的父类。 type是所有类的类。 那么type和object是什么关系呢?object是一个新式类,我们可以通过object.__class__和obje...

    Keven 评论0 收藏0

发表评论

0条评论

instein

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<