python基础——列表

目录

列表操作

增加

修改

删除

统计

排序

小结

for遍历列表

拆包

列表推导式

列表中不同数据类型处理

公共方法

统计

成员运算符

小结


在python中,所有的非数字型变量都支持以下特点:

  1. 都是一个序列
  2. 通过 变量名[索引] 的方式取值
  3. 通过 for in 遍历
  4. 可以计算长度、最大和最小值

List列表是python中使用最频繁的数据类型,在其他语言中通常叫做数组(arr),用于存储一串信息。

  • 列表用[]定义,列表中的数据之间使用,分隔
  • 列表的索引从0开始;索引就是数据在列表中的位置编号,也可以称为下标
  • 使用 列表名[索引] 的方式访问指定的成员
    • 第一个成员的的索引编号是0
    • 不能访问不存在的索引编号(会报错)
  • 空列表:list2 = [],即列表中没有元素,不能访问空列表中的数据

列表的定义:

list1 = ['肖战','魏无羡','时影','肖春生','顾魏','顾一野','盛阳']
#list1是列表变量名

列表数据访问:

print(list1[0])#返回第1个成员:肖战
print(list1[1])#返回第2个成员:魏无羡
print(list1[2])#返回第3个成员:时影
print(list1[3])#返回第4个成员:肖春生
print(list1[4])#返回第5个成员:顾魏
print(list1[5])#返回第6个成员:顾一野
print(list1[6])#返回第7个成员:盛阳

 查看列表中所有的方法:

print(dir(list))'''
输出结果:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
'''

列表操作

增加

列表.insert(索引,值),在列表中指定位置插入指定值,语法:

list1 = ['肖战','魏无羡','时影']
list1.insert(1,"肖春生")#把肖春生插入到第2个位置
print(list1)#输出['肖战', '肖春生', '魏无羡', '时影']

列表.append(值), 在列表最后插入指定值,语法:

list1 = ['肖战','魏无羡','时影']
list1.append("肖春生")#在列表的最后插入肖春生
print(list1)#输出['肖战', '魏无羡', '时影','肖春生']

列表1.extend(列表2),把列表2的成员追加到列表1的后面,语法:

list1 = ['肖战','魏无羡','时影']
list2 = ['盛阳','顾魏','顾一野']
list1.extend(list2)#把list2的成员追加到list1的最后
print(list1)#输出['肖战', '魏无羡', '时影','盛阳','顾魏','顾一野']

修改

列表名[索引] = 值修改索引指定位置的值

list1 = ['肖战','魏无羡','时影']
list1[1] = '顾魏'#修改第2个成员的值为顾魏
print(list1)#输出['肖战', '顾魏', '时影']

删除

del(列表名[索引]),删除索引指定位置的值

list1 = ['肖战','魏无羡','时影']
del(list1[2])#删除第3个成员的值
print(list1)#输出['肖战', '魏无羡']

 列表.remove(),删除指定值

list1 = ['肖战','魏无羡','时影']
list1.remove('魏无羡')#删除魏无羡
print(list1)#输出['肖战', '时影']

列表.pop(),删除列表中最后一个成员

list1 = ['肖战','魏无羡','时影']
list1.pop()#删除最后一个成员
print(list1)#输出['肖战', '时影']

列表.pop(索引),删除索引指定位置的值(同del)

list1 = ['肖战','魏无羡','时影']
list1.pop(0)#删除第1个成员的值
print(list1)#输出['魏无羡', '时影']

列表.clear(),清空列表

list1 = ['肖战','魏无羡','时影']
list1.clear()#清空列表
print(list1)#输出[]

统计

列表.count(值),统计指定值在列表中的数量,若没有,返回0

list1 = ['肖战','魏无羡','肖战']
print(list1.count("肖战"))#输出肖战出现的次数:2

列表.index(值),返回指定值在列表中从0开始第一次出现的位置

列表.index(值,索引) 返回指定值在列表中从指定索引开始第一次出现的位置

指定的值必须存在,否则报错

list1 = ['肖战','魏无羡','肖战']
print(list1.index("肖战"))#输出肖战在列表中从0开始第一次出现的位置:0
print(list1.index("肖战",1))#输出肖战在列表中从1开始第一次出现的位置:2

排序

列表.sort(),对列表进行升序排列

列表.sort(reverse=True),对列表进行降序排列

list1 = [3,567,23,4,8]
list1.sort()#对列表从小到大排序
print(list1)#返回[3, 4, 8, 23, 567]
list1.sort(reverse=True)#对列表从大到小排序
print(list1)#返回[567, 23, 8, 4, 3]

列表.reverse() ,逆置,对列表倒序排列

list1 = [3,567,23,4,8]
list1.reverse()#对列表倒序排列
print(list1)#输出[8, 4, 23, 567, 3]

小结

分类语法说明
增加列表.insert(索引,值)在列表中指定位置插入指定值
列表.append(值)在列表最后插入指定值
列表1.extend(列表2)把列表2的成员追加到列表1后面
修改列表名[索引] = 值修改索引指定位置的值
删除del(列表名[索引])删除索引指定位置的值
列表.remove()删除指定值
列表.pop()删除列表中最后一个成员
列表.pop(索引)删除索引指定位置的值(同del)
列表.clear()清空列表
统计列表.count(值)

统计指定值在列表中的数量;若没有,返回0

列表.index(值)

返回指定值在列表中从0开始第一次出现的位置
列表.index(值,索引) 返回指定值在列表中从指定索引开始第一次出现的位置
排序

列表.sort()

对列表进行升序排列
列表.sort(reverse=True)对列表进行降序排列
列表.reverse() 逆置,对列表倒序排列

for遍历列表

for 变量名 in 列表:代码
'''
列表中有多少成员,for就会循环多少次
变量名代表for每次循环的时候,得到的列表成员的值
'''

拆包

变量1,变量2,变量3,,,变量n = 列表变量

等号左边的变量数量要和等号邮编的列表中成员数量一致

list1 = ['肖战','肖春生','顾魏']
a,b,c = list1
print(a,b,c)

列表推导式

用于快速生成列表(数量庞大时),语法;

列表变量名 = [x for x in range(开始值,结束值,步长)]——左闭右开根据步长推导

列表变量名 = [x for x in range(开始值,结束值,步长) if 条件]——符合条件的才推导出

list1 = [x for x in range(0,10)]
print(list1)#输出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list2 = [x for x in range(5,20,3)]
print(list2)#输出[5, 8, 11, 14, 17]
list3 = [x for x in range(30,5,-5)]
print(list3)#输出[30, 25, 20, 15, 10]
list4 = [x for x in range(30,5,-5) if x != 10]
print(list4)#输出[30, 25, 20, 15]

 例:用列表推导式,创建一个列表,内容为[0,10,20,30,40,50,60,70,80,90,100]

list5 = [x for x in range(0,101,10)]
print(list5)

列表中不同数据类型处理

        当列表中成员数据类型不一致,但需要再for中通过统一调代码处理所有数据,需要将所有数据转化为同一个类型。

例1:输出列表的每个值,统一转换

list1 = ['肖战',32,183.6,"演员"]
a = 1
for n in list1:print("列表第%d个成员的值是%s" % (a,str(n)))#所有值转换为字符串a += 1
'''
输出:
列表第1个成员的值是肖战
列表第2个成员的值是32
列表第3个成员的值是183.6
列表第4个成员的值是演员
'''

例2:计算下面所有数字的和

list2 = [56,'32',45,'6']
sum = 0
for n in list2:sum += int(n)#所有元素转换为整型后求和
print(sum)#输出139

公共方法

非列表特有,也适用于元组、字典、字符串

统计

len(列表):返回列表中成员的数量

len(字符串):返回字符串中字符的个数

list1 = [4,7,34,67]
print(len(list1))#返回列表中元素的个数:4
list2 = ['肖战','魏无羡','时影']
print(len(list2))#返回列表中成员的个数:3
str = "hi,肖战"
print(len(str))#返回字符串中字符的个数:5

max(列表):返回列表中的最大值

min(列表):返回列表中的最小值

max(字符串)min(字符串):返回字符串中ASCII码最大、最小的字符

list1 = [54,12,78,123,77]
print(max(list1))#输出123
print(min(list1))#输出12
str = "hixiaozhan"
print(max(str))#输出z(对应ASCII码最大)
print(min(str))#输出a(对应ASCII码最小)

成员运算符

值 in 列表:判断指定值是否在列表/字符串中

值 not in 列表:判断指定值是否不在列表/字符串中

list1 = [4,6,27,1]
if 4 in list1:print("存在")
if 5 not in list1:print("不存在")str = "hi,肖战"
if "肖" in str:print("存在")

小结

分类语法说明
统计len(列表)返回列表中元素的个数
max(列表)返回列表中最大的数据
min(列表)返回列表中最小的数据
成员运算符值 in 列表判断值是否在列表中,存在返回True,不存在返回False
值 not in 列表判断值是否不在列表中,存在返回False,不存在返回True

例1:定义一个变量,内容如下["肖战","魏无羡","王一博","蓝湛","金光瑶"],查找列表中是否有金光瑶,如果有将其删除。

list1 = ["肖战","魏无羡","王一博","蓝湛","金光瑶"]
if "金光瑶" in list1:list1.remove("金光瑶")
print(list1)#输出['肖战', '魏无羡', '王一博', '蓝湛']

例2:定义一个列表,内容如下[3,5,67,2,34,12,5,11],计算列表中元素的平均值

list2 = [3,5,67,2,34,12,5,11]
sum = 0#存放元素和
for n in list2:sum += n
print(sum/len(list2))#输出17.375

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

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

相关文章

PyCharm中切换Python包的源

在PyCharm中切换Python包的源,通常是指更换pip的安装源,以加快包的下载速度。以下是如何在PyCharm中切换源的步骤: 打开PyCharm,点击右下角的 "Terminal" 选项卡。 在终端中输入以下命令来清除现有的pip源配置&#xf…

Spring:@Async注解使用注意事项及九大失效场景

前言 原文作者:微信公众号:苏三说技术 场景举例 代码案例 点击此处可观看:Async注解使用注意事项及九大失效场景

Python修改exe之类的游戏文件中的数值

文章目录 场景查找修改 补充字节to_bytes 场景 某些游戏数值(攻击力、射程、速度…)被写在exe之类的文件里 要先查找游戏数值,然后修改 查找 首先,要查找数值,大数重复较少,建议从大数找起 F 游戏原件…

OPT系列极速版远距离光数据传输器|光通讯传感器安装与调试方法

OPT系列极速版远距离光数据传输器|光通讯传感器使用红外激光通信,满足全双工 100M 带宽,通讯距离可达 300 米。能够快速,稳地传送数据,支持主流的工业控制总线(Profinet,Ethercat 等)&#xff1…

【JVM】从可达性分析,到JVM垃圾回收算法,再到垃圾收集器

《深入理解Java虚拟机》[1]中,有下面这么一段话: 在JVM的各个区域中,如虚拟机栈中,栈帧随着方法的进入和退出而有条不紊的执行者出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在…

【RAG 论文】BGM:为 LLM 和 Retriever 的偏好 gap 搭建一个 Bridge

论文:Bridging the Preference Gap between Retrievers and LLMs ⭐⭐⭐ Google Research, arXiv:2401.06954 论文速读 LLM 与 Retriever 之间存在一个 preference gap:大多数 retriever 被设计为 human-friendly,但是 LLM 的偏好与人类的却…

长难句打卡 5.13

And in Europe, some are up in arms over a proposal to drop a specific funding category for social-science research and to integrate it within cross-cutting topics of sustainable development. 在欧洲,有些人正竭力反对一项“终止专用于社会科学研究的…

网络安全防护:抵御DDoS和CC攻击

在当今数字化时代,网络安全已成为任何组织或个人不可忽视的重要议题。DDoS(分布式拒绝服务)攻击和CC(命令与控制)攻击作为两种最为常见的网络攻击方式,给网络运营者和用户带来了巨大的威胁和影响。本文将介…

函数memcpy的实现及详解

前言 今天我们来了解一下memcpy函数和它的作用吧,咋们之前已经熟悉了strcpy的使用,它的作用是字符串的拷贝,那么当我们要拷贝其他类型的数据时,应该使用什么函数呢,我们今天给大家介绍的就是memcpy函数,他可…

C++语言的字符数组

存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。字符数组具有数组的共同属性。 1. 声明一个字符数组 char c[5]; 2. 字符数组赋值方式 (1)为数组元素逐一赋值 c[0]H c[1]E c[2]L c[3]L c[4]O (2&…

微信小程序开发,构建NPM报错解决

报错信息如下: message: NPM packages not found. Please confirm npm packages which need to build are belong to miniprogramRoot directory. Or you may edit project.config.jsons packNpmManually and packNpmRelationList appid: wx7144a5d5411…

SpringBoot 启动时查询数据库数据,并赋值给全局变量

创建一个组件 AreaData import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component;import java.u…

三极管 导通条件

一、三极管理解 三极管是电子行业常用的元器件之一,他是一种电流型控制的器件,他有三种工作状态:截止区,放大区、饱和区。当三极管当做开关使用时,他工作在饱和区。下面简短讲解三极管作为开关使用的方法,只…

2.三极管

2.习题 3.知识补充

Web 安全 PHP 代码审查之常规漏洞

前言 工欲善其事,必先利其器。我们做代码审计之前选好工具也是十分必要的。下面我给大家介绍两款代码审计中比较好用的工具。 一、审计工具介绍 PHP 代码审计系统— RIPS 功能介绍 RIPS 是一款基于 PHP 开发的针对 PHP 代码安全审计的软件。 另外,…

Spring Cloud 概述及项目创建

本篇主要介绍什么是Spring Cloud,以及Spring Cloud工程的创建 目录 一、什么是微服务? 集群 分布式 微服务 二、Spring Cloud 什么是Spring Cloud Spring Cloud 版本 Spring Cloud实现方案 Spring Cloud 工程创建 创建父工程 创建子工程 一、…

MySQL 大量数据插入优化

效率最好的方式是:批量插入 开启事务。 1、数据批量插入相比数据逐条插入的运行效率得到极大提升; ## 批量插入 INSERT INTO table (field1, field12,...) VALUES (valuea1, valuea2,...), (valueb1, valueb2,...),...;当数据逐条插入时,每…

C++类细节,反汇编,面试题02

文章目录 2. 虚函数vs纯虚函数3. 重写vs重载vs隐藏3.1. 为什么C可以重载? 4. struct vs union4.1. 为什么要内存对齐? 5. static作用6. 空类vs空结构体6.1. 八个默认函数:6.2. 为什么空类占用1字节 7. const作用7.1 指针常量vs常量指针vs常量…

【SRC-CPP-OpenCV】给图片更换背景色

文章目录 Part.I IntroductionPart.II Main_bodyChap.I 源码简析Chap.II 效果展示 Part.III 源码Reference Part.I Introduction 本文将介绍如何用 OpenCV 更换图片的背景色(附有完整代码)。 Part.II Main_body Chap.I 源码简析 配置部分&#xff1a…

Java文字识别接口、票据ocr、接口开发文档

曾经看到过这样一句话“如果把产品比作孩子的话,那么产品经理就是生孩子的”。由此可见,产品经理对于产品的重要性。一位有经验的产品经理提出的产品需求往往逻辑清晰,技术开发过程中修改需求的次数少,产品上线、推出后让人易于接…