[基础语法] python语法之列表的基本操作

news2024/12/24 6:29:52

文章目录

  • 列表
    • 已发布
    • 列表的基本操作
      • 排序
    • 列表实例练习

列表

已发布

  • python判断语句
  • python循环语句
  • python之列表list

python 的数据格式主要有列表、字典、元组、集合。其中列表的使用最为广泛。

任何一种数据格式的使用都离不开增、删、改、查四个操作。列表除了这四个操作之外,又多了一个排序的操作。
python语言中的list与其他语言中的list不一样,其他语言中的list要求元素的数据类型是一致的,而python中,列表中元素的类型不仅可以不一致,还可以进行嵌套。

列表的基本操作

向列表中增加元素有三个方法可以调用:

  • append(obj) :向原列表的最后增加元素,不管参数obj是什么,都是作为一个元素增加到列表的最后
  • extend(obj):把参数obj的每一个元素按序逐一增加到原列表的后面,参数obj是列表
  • insert(pos,obj):把参数obj作为一个元素添加到下标为pos的位置
def add_ele():
    mylist = ["使用append增加元素", "可以不同类型", ["12", "33"]]  # 列表中元素的类型可以不一致,并且可以嵌套
    print("--append 初始元素--")
    print(mylist)
    mylist.append("第一次增加元素")  # 向列表的最后增加一个字符串
    print("--第一次增加一个字符串--")
    print(mylist)
    mylist.append(["增加一个元素","这个元素是一个列表", "第二次增加"])  # append增加的是一个元素,这次增加把一个列表当成一个元素增加到mylist的最后
    print("--第二次增加一个列表--")
    print(mylist)
    
    mylist = ["使用extend合并 两个列表", "可以不同类型", ["12", "33"]]
    print("--extend 初始元素--")
    print(mylist)
    print("--合并两个列表--")
    mylist.extend(["我是后来加上的","我是逐个元素增加到上个列表的后面"])
    print(mylist) # 合并两个列表

    mylist = ["使用insert", "根据下标在指定的位置增加元素", "指定位置之后的元素都向后移动"]
    print("--insert 初始元素--")
    print(mylist)
    print("在下标为1的位置,增加元素")
    mylist.insert(1, "我是新增的")  # 在指定的位置增加元素
    print(mylist)


if __name__ == "__main__":
    add_ele()

结果如下图所示:
在这里插入图片描述

删除操作有主要有三种:

  • del :根据下标删除指定的元素
  • pop(): 删除最后一个元素,并将要删除的元素返回
  • remove(obj):根据内容,删除相匹配的第一个元素
def del_ele():
    mylist_2 = ["111", 222, "333", "444", "我是重复的", "666", "我是重复的", ["我是列表", "我是列表"], "我是最后一个"]
    print("--初始元素--------------------",end="\t")
    print(mylist_2)
    del mylist_2[3]  # 删除下标为3的元素
    print("--删除下标为3的元素-------------",end="\t")
    print(mylist_2)
    print("--最后一个元素-----------------",end="\t")
    print(mylist_2.pop())  # 删除最后一个元素
    print("--删除最后一个元素--------------",end="\t")
    print(mylist_2)
    mylist_2.remove("我是重复的")  # 根据元素内容删除相匹配的第一个元素
    print("-根据元素内容删除相匹配的第一个元素-",end="\t")
    print(mylist_2)


if __name__ == "__main__":
    del_ele()

结果如下图所示:
在这里插入图片描述

修改元素很简单,直接看代码就行。

def alert_ele():
    mylist_2=["我是第一个", "我是第二个", "我是第三个"]
    print("--初始元素--------------------", end="\t")
    print(mylist_2)
    mylist_2[0] = "我修改了"
    print("--修改了下标为0的元素-----------", end="\t")
    print(mylist_2)


if __name__ == "__main__":
    alert_ele()

结果如下图所示:
在这里插入图片描述

查询有三种:

  • def fun():自己写查询的方法
  • index(obj, start, end):在指定的范围[start, end)内查询元素obj是否出现
  • count(obj):统计某个元素obj出现的个数
def search_ele():
    sea_list = ["s", "e", "a", "h", "d", "e"]
    sea_ele = "e"
    # 这是自己写的方法
    if sea_ele in sea_list:
        print("True")
    else:
        print("False")
    print(sea_list.index(sea_ele, 1, 5))  # 在下标[1, 5)内查找元素,查到,就返回下标,否则,报错。!!
    print(sea_list.count(sea_ele))  # 统计元素出现的个数

if __name__ == "__main__":
    search_ele()

结果如下图所示:
在这里插入图片描述

排序

排序有三种状态:

  • 反转 reverse()
  • 升序 sort()
  • 降序 sort(reverse=True)
def sort_list():
    sort_list = [1, 2, 4, 3, 6, 5]
    print("--初始状态--------------------", end="\t")
    print(sort_list)
    sort_list.reverse()      # 反转
    print("--反转状态--------------------", end="\t")
    print(sort_list)
    sort_list.sort()  # 升序
    print("--升序状态--------------------", end="\t")
    print(sort_list)
    sort_list.sort(reverse=True)  # 降序
    print("--降序状态--------------------", end="\t")
    print(sort_list)

if __name__ == "__main__":
    sort_list()

结果如下图所示:
在这里插入图片描述

列表实例练习

把14个老师,随机分配到4个办公室,并显示出来

def list_demo():
    import random
    teachers = ["a", "b", "c", "d", "e", "f", "g", "h","i", "j", "k", "l", "m", "n"]
    office = [[], [], [], []]

    for ele in teachers:
        i = random.randint(0, 3)  # [0, 1, 2]
        office[i].append(ele)

    for i, eles in enumerate(office):
        print("第%d个办公室:" % (i+1), end="\t"*2)
        for ele in eles:
            print(ele, end="\t")
        print("\n")


if __name__ == "__main__":
    list_demo()

结果如下图所示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Mysql第四期 运算符规则计算】

文章目录写在前面1.算数运算符2.比较运算符3.逻辑运算符4.位运算符5.运算符的优先级拓展:使用正则表达式查询写在前面 基本的运算符号在计算机编程领域都是相通的,会有自己的一些特定符号语言,就像是各地的普通话一样,尽管语音描…

剑指 Offer II 004只出现一次的数字

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 示例 1: 输入:nums [2,2,3,2] 输出:3 示例 2: 输入:nums [0,1,0,…

Linux中Vi编辑器和Vim编辑器

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例分…

Docker常用命令总结

基础命令 1.启动docker systemctl start docker 2.关闭docker systemctl stop docker 3.设置docker为自启动 systemctl enable --now docker 4.重启docker systemctl restart docker 3.查看docker版本信息 docker version 4.查看docker详细信息 docker info Clien…

Spring定时器超过30分钟问题

目前需要定时器做一个定时扫描任务的功能,原先都是定时在半个小时,程序跑起来也没事。但是最近公司要求定时时间加长到45分钟,而调整完配置完后发现,程序是在45分钟和整点进行的扫描。 下面是我做的示例时间缩短为45秒 spring。x…

守护进程编程流程及代码实现

概念不做阐述,本文主要内容为守护进程编程部分的知识说明 守护进程的编程流程: 1.fork退出父进程,保证留下的子进程是组员进程 2.利用setsid()创建新会话,把子进程挪到新的会话中 //获取会话是getsid() 3.fork退出父进程&#x…

完成基于Servlet的对user表的增删改查

基于Servlet的增删改查 1.开发环境 IDEAJDK1.8Tomcat8.5Mysql 8.0.12 2.数据库 2.1表创建 2.2表数据 3.JavaWeb代码 3.1目录结构 3.2util包下代码 JdbcUtil完成对数据库的连接和资源释放 JsonResult对返回前端资源的封装 JdbcUtil代码: /* 数据库连接板帮助类 …

Python中的垃圾回收机制

Python的垃圾回收主要以引用计数为主,分代回收为辅。引用计数在Python中,使用了引用计数这一技术实现内存管理。一个对象被创建完成后就有一个变量指向这个对象,那么就这个对象的引用计数为1,以后如果有其他变量指向这个对象&…

不吹牛,完爆ant design的定位组件,floating-ui来也

前言 因为要写react定位组件(这不是标题党,就是完爆ant design的定位组件,你应该看到一半就会同意我的观点),如下图: 红框部分是用绝对定位放在按钮上面的,你们B端用的主流组件库都是这样实现的…

Python自动化小技巧14——自动批量发送邮件(带各种附件)

案例背景 我的博客下面评论都是各种要数据的......一个一个发其实很浪费时间的,每次输入评论者的邮箱,然后打开数据所在的文件夹,上传,填写标题正文,发送....... 一模一样的流程,所以这种重复性的劳动肯定…

Linux下 git 上传与删除 的基本指令

git的概述克隆仓库使用 git 上传文件删除 git 中的文件git的概述 Git 是一个免费并开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 在使用 git 应确保Linux系统中已安装有git 命令:git --version 作用:查看 git 是否…

Spring Boot 单元测试

文章目录1. 单元测试是什么2. 单元测试的优点3. 进行 Spring Boot 单元测试3.1 确认项目中已经内置了测试框架3.2 生成单元测试的类3.3 添加 SpringBootTest 注解3.4 添加单元测试的业务代码3.5 注解 Transactional4. 断言1. 单元测试是什么 单元测试,是指对软件中…

微信小程序022同学会学生会活动经费系统

同学会小程序采用B/S结构、java开发语言、以及Mysql数据库等技术。系统主要分为管理员端和用户端两部分,管理员管理主要功能包括:首页、个人中心、用户管理、共享账本管理、我的账本管理、经费信息管理、经费支出管理、活动信息、管理员管理、留言板管理…

分享怎么做公众号预约_美容院预约小程序开发制作功能介绍

小程序的功能首先是为美人有约客户提供更快选购、预约服务的线上工具,解决顾客对商品详情、线上购买、线上预约查看等各种服务需求。一、美容美发预约下单小程序主要功能有:首页:搜索、banner、金刚区、瓷片区、项目列表预约:单次…

Java技术栈,从入门到放弃,废了废了

Java技术路线应用框架后端Spring家族SpringIoCAOPSpring MVCSpring Boot自动配置、开箱即用整合Web整合数据库(事务问题)整合权限ShiroSpring Security整合中间件缓存MQRPC框架NIO框架服务器软件应用服务器TomcatJettyUndertowWeb服务器Nginx中间件缓存R…

Deathstalker的核心武器——Janicab新变种

01 概述 DeathStalker是一个专门针对金融机构和律师事务所进行攻击的组织,而Janicab是其所使用的比较古老的武器。 Janicab 首次在2013年被发现,它是能够运行在MacOS和Windows操作系统上的恶意软件。其中,Windows版本基于VBscript的植入作为…

【第27天】SQL进阶-查询优化- performance_schema系列实战三:锁问题排查(表级锁)(SQL 小虚竹)

回城传送–》《32天SQL筑基》 文章目录零、前言一、什么是表级锁二、什么时候适合加表级锁三、实战演练3.1 数据准备(如果已有数据可跳过此操作)3.2 开启第一个会话,执行显式加表级锁3.3 开启第二个会话,对该表执行update更新3.4 …

Vue 3.0 应用组件实例

#创建一个应用实例 每个 Vue 应用都是通过用 createApp 函数创建一个新的应用实例开始的: const app Vue.createApp({ /* 选项 */ }) 该应用实例是用来在应用中注册“全局”组件的。我们将在后面的指南中详细讨论,简单的例子: const app V…

jsp学生管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 学生管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发,数据库为Mysql,使用ja…

【Docker】基础使用

目录 一、Docker简介 二、Docker核心概念 三、Docker安装 四、Docker常用操作 1. 镜像操作 2. 容器操作 3. 安装MySQL 一、Docker简介 Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖…