列表(list)—python

news2024/12/25 23:43:24

一、列表的定义方式

列表内的每一个数据称为元素,列表以[ ]作为标识,列表内的每个元素之间用逗号隔开

列表的基本语法如下:

#字面量
[元素1,元素2,元素3,元素4,……]

#定义变量
变量名称=[元素1,元素2,元素3,元素4,……]

#定义空列表
变量名称=[]
变量名称=list()

列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套,如下例所示:

name_list=['加菲猫','欧迪','乔恩']
print(name_list)
print(type(name_list))

输出:

['加菲猫', '欧迪', '乔恩']
<class 'list'>

list1=['apple',100,'鸿鹄']
print(list1)
print(type(list1))

输出:

['apple', 100, '鸿鹄']
<class 'list'>

name_list=['加菲猫','欧迪','乔恩']
list1=['apple',100,'鸿鹄']

#嵌套
list2=[name_list,list1]
print(list2)
print(type(list2))

list3=[['加菲猫','欧迪','乔恩'],['apple',100,'鸿鹄']]
print(list3)
print(type(list3))

输出:

[['加菲猫', '欧迪', '乔恩'], ['apple', 100, '鸿鹄']]
<class 'list'>
[['加菲猫', '欧迪', '乔恩'], ['apple', 100, '鸿鹄']]
<class 'list'>

二、列表的下标索引

列表中的每一个元素都有其编号,称之为下标索引

我们可以通过下标索引,取出特定位置的元素,如下列代码所示:

name_list=['加菲猫','欧迪','乔恩']
print(name_list[0])
print(name_list[1])
print(name_list[2])

输出:

加菲猫
欧迪
乔恩

list1=['apple',100,'鸿鹄']
print(list1[-1])
print(list1[-2])
print(list1[-3])

输出:

鸿鹄
100
apple

注意:下标索引的取值范围,超出范围无法取出元素,并且会报错

三、列表的方法

列表提供了一系列功能:插入元素、删除元素、清空列表、修改元素、统计元素个数等功能,这些功能称之为:列表的方法

3.1查找指定元素的下标

语法:列表.index(元素)

功能:查找指定元素在列表中的下标,如果找不到,报错ValueError    

具体应用:

list=[12,'water','雨','d','watermelon',45]
print(list.index('d'))

输出:

3

3.2修改特定位置的元素值

语法:列表[下标] = 值

功能:使用如上语法,直接对指定下标(正向、反向下标均可)的值进行重新赋值(修改)

具体应用:

list=[12,'water','雨','d','watermelon',45]
list[3]='c'
list[-1]=32
print(list)

输出:

[12, 'water', '雨', 'c', 'watermelon', 32]

3.3插入元素

3.3.1在指定位置插入指定元素

语法:列表.insert(下标, 元素)

功能:在指定的下标位置(正向、反向下标均可),插入指定的元素

具体应用:

list=[12,'water','雨','d','watermelon',45]
list.insert(1,'wind')
list.insert(-2,'wind')
print(list)

输出:

[12, 'wind', 'water', '雨', 'd', 'wind', 'watermelon', 45]

3.3.2在列表尾部添加指定元素

语法:列表.append(元素)

功能:将指定元素,追加到列表的尾部

具体应用:

list=[12,'water','雨','d','watermelon',45]
list.append('baby')
print(list)

输出:

[12, 'water', '雨', 'd', 'watermelon', 45, 'baby']

3.3.3在列表尾部依次添加其它数据容器中的元素

语法:列表.extend(其它数据容器)

功能:将其它数据容器中的内容取出,依次追加到列表尾部

具体应用:

list3=['apple',100,'鸿鹄']
list4=['加菲猫','欧迪','乔恩']
list3.extend(list4)
print(list3)

输出:

['apple', 100, '鸿鹄', '加菲猫', '欧迪', '乔恩']

3.4删除元素

3.4.1删除指定位置的元素(正向、反向下标均可)

语法1:del 列表[下标]

语法2:列表.pop(下标)

语法1具体应用:

list=[12,'water','雨','d','watermelon',45]
del list[0]
del list[-1]
print(list)

输出:

['water', '雨', 'd', 'watermelon']

语法2具体应用:

list=[12,'water','雨','d','watermelon',45]
list.pop(1)
list.pop(-2)
print(list)

输出:

[12, '雨', 'd', 45]

3.4.2删除指定元素在列表中的第一个匹配项

语法:列表.remove(元素)

功能:在列表中从前往后查找,找到第一个指定元素,删除

具体应用:

list=[12,'water','雨','d','watermelon','d',45]
list.remove('d')
print(list)

输出:

[12, 'water', '雨', 'watermelon', 'd', 45]

3.4.2清空列表内容

语法:列表.clear()

具体应用:

list=[12,'water','雨','d','watermelon','d',45]
list.clear()
print(list)

输出:

[ ]

3.5统计元素

3.5.1统计指定元素在列表内的数量

语法:列表.count(元素)

具体应用:

list=[12,'d','water','雨','d','watermelon','d',45]
print(list.count('d'))#列表中有多少个d

输出:

3

3.5.2统计列表内的元素个数

语法:len(列表)      

功能:得到一个int数字,表示列表内的元素数量

具体应用:

list=[12,'d','water','雨','d','watermelon','d',45]
print(len(list))

输出:

8

列表的常用方法总结如下:

编号语法功能
1列表.index(元素)查找指定元素的下标

2

列表[下标] = 值修改特定位置的元素值
3列表.insert(下标, 元素)在指定的下标位置插入指定的元素
4列表.append(元素)将指定元素,追加到列表的尾部
5列表.extend(其它数据容器)在列表尾部依次添加其它数据容器中的元素
6 del 列表[下标]删除指定位置的元素
7列表.pop(下标)
8列表.remove(元素)删除指定元素在列表中的第一个匹配项
9列表.clear()清空列表内容
10列表.count(元素)统计指定元素在列表内的数量
11len(列表)统计列表内的元素个数

四、列表的特点

  1. 可以容纳多个元素(上限为9223372036854775807个)
  2. 可以容纳不同类型的元素
  3. 数据有序存储(有下标索引)
  4. 允许重复数据存在
  5. 可以修改(增加或删除元素等操作)

五、列表的遍历

将容器内的元素依次取出进行处理的行为,称之为遍历,或者迭代。

5.1用while循环遍历列表元素

#取出列表中的偶数
list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
i=0
while i<len(list):
    if list[i]%2==0:
        print(list[i])
    i+=1

输出:

2
4
6
8
10

5.2用for循环遍历列表元素

listone=['加菲猫','欧迪','乔恩']
for i in listone:
    print(i)

输出:

加菲猫
欧迪
乔恩

5.3while循环和for循环的对比

在循环控制上:

  • while循环可以自定义循环条件,并自行控制
  • for循环不可以自定义循环条件,只能从容器内依次取出数据

在无限循环上:

  • while循环可以通过条件控制做到无限循环
  • for循环理论上不可以做到无限循环,因为被遍历的容器容量不是无限的

在使用场景上:

  • while循环适用于任何想要循环的场景
  • for循环适用于遍历数据容器简单的固定次数循环场景

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

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

相关文章

Linux的防火墙

一、防火墙概述 防火墙是一种计算机硬件和软件的结合&#xff0c;使internet和intranet之间建立一个安全网关&#xff08;Security Gateway&#xff09;&#xff0c;从而保护内网免受非法用户侵入的技术。 防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成。…

安防视频监控EasyCVR视频汇聚平台无法编辑设备通道信息的原因排查及解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构&#xff0c;兼容性强、支持多协议接入&#xff0c;包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…

ECharts - 坐标轴刻度数值处理

写图表时&#xff0c;Y轴的数值过大&#xff0c;不太可能直接展示&#xff0c;这时候就得简写了&#xff0c;或者百分比展示的也要处理&#xff0c;如下图&#xff1a; yAxis: {type: value,// Y轴轴线axisLine: { show: false }, // 刻度线axisTick: { show: false },// 轴刻度…

ECharts实现按月统计和MTBF统计

一、数据准备 下表是小明最近一年的旅游记录 create_datecity_namecost_money2023-10-10 10:10:10北京14992023-11-11 11:11:11上海29992023-12-12 12:12:12上海19992024-01-24 12:12:12北京1232024-01-24 12:12:12上海2232024-02-24 12:12:12广州5642024-02-24 12:12:12北京…

学习笔记之Java篇(0729)

p 数组 大纲知识点数组的概念数组的定义、四个特点数组的常见操作普通遍历、for-each遍历、java.util.Array类用法多维数组多维数组的内存结构、存储表格、Javabean和数组存储表格常见算法冒泡排序基础算法、冒泡排序优化算法、二分法查找&#xff08;折半查找&#xff09; 1、…

【JavaWeb】Filter

基本使用 使用了过滤器之后&#xff0c;要想访问web服务器上的资源&#xff0c;必须先经过滤器&#xff0c;过滤器处理完毕之后&#xff0c;才可以访问对应的资源。过滤器一般完成一些通用的操作&#xff0c;比如&#xff1a;登录校验、统一编码处理、敏感字符处理等。 使用操…

nginx 子路径映射配置

如果子路径转发到另一个服务器IP&#xff0c;配置如下&#xff0c;注意都要以“/”结尾。 #指定nginx进程数 worker_processes 1; pcre_jit on;events {# 连接数上限worker_connections 30000; }#http服务 http {server {listen 20012;# 监听的端口号server_name localho…

Spring IoC DI(笔记)

一.了解SpringIoC&DI 1.1IoC 通过前面的学习,我们知道了Spring是一个开源框架,他让我们的开发更加简单.他支持广泛的应用场 景,有着活跃而庞大的社区,这也是Spring能够长久不衰的原因&#xff0c;但是这个概念相对来说,还是比较抽象&#xff0c;我们用一句更具体的话来概…

纯原创【车牌识别】基于图像处理的车牌识别——matlab项目实战(含GUI界面)详解

摘要 车牌识别系统乃计算机视觉与模式识别技术于智能交通领域的重要研究课题之一。其作用在于从复杂背景里提取运动中的汽车牌照&#xff0c;进而识别出车牌号码。车牌识别技术在高速公路电子收费、日常停车场管理以及交通违章监控等场景得到广泛运用。它的问世对于维护交通安全…

代码随想录二刷(链表章节)

代码随想录二刷(链表章节) 链表就是通过指针串联在一起的线性结构&#xff0c;每个节点都是由一个数据域和指针域(存放下一个节点的指针)。 双链表就是每个节点中既有指向前一个节点的&#xff0c;也有指向后一个节点的。 循环链表就是把头和尾连起来。 性能分析如下&#xf…

Java面试八股之@Autowired 和 @Resource的区别

Autowired 和 Resource的区别 在Spring框架中&#xff0c;Autowired 和 Resource 是两个常用的依赖注入注解&#xff0c;但它们有一些关键的区别。下面是这两个注解的主要差异&#xff1a; 1. 注解来源 Autowired&#xff1a; 是Spring框架提供的注解&#xff0c;位于包 or…

TerraSAR-XTanDEM-X卫星详解(一)

全球SAR卫星大盘点与回波数据处理专栏目录 1. TerraSAR-X简介 TerraSAR-X(Terra Synthetic Aperture Radar-X)和TanDEM-X(TerraSAR-X add-on for Digital Elevation Measurement)是由德国宇航中心(DLR)和EADS Astrium公司共同推出的一对双子卫星。Terra源自拉丁语,是地…

解决win10蓝屏“选择一个选项”的问题!

今天台式机开机&#xff0c;出现蓝屏问题&#xff0c;记录一下。 一、问题 启动修复不行&#xff0c;系统还原没还原点&#xff0c;系统映像恢复没有文件。难道要重装系统&#xff1f;手上只能Win7和XP的启动盘。此路不通。 二、解决 使用命令提示符。输入&#xff1a; bcdb…

《花100块做个摸鱼小网站! · 序》灵感来源

序 大家好呀&#xff0c;我是summo&#xff0c;这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛&#xff0c;2核2G的云服务器一年只要99块钱&#xff0c;懂行的人应该知道这个价格在业界已经是非常良心了&#xff0c;虽然优惠只有一年&a…

PMP考试难吗?好不好学?

PMP 并不难&#xff0c;虽然新考纲大家都说开盲盒&#xff0c;做阅读理解&#xff0c;但线上考试成绩出的快&#xff0c;晒 3A 的也不少。给大家分享下我的备考经历&#xff0c;希望能给后面备考的同学一点参考吧。 现在的新考纲是要学习三本书的&#xff0c;《PMBOK》第六版、…

弘景光电:技术实力与创新驱动并进

在光学镜头及摄像模组产品领域&#xff0c;广东弘景光电科技股份有限公司&#xff08;以下简称“弘景光电”&#xff09;无疑是一颗耀眼的明星。自成立以来&#xff0c;弘景光电凭借其强大的研发实力、卓越的产品性能、精密的制造工艺以及严格的质量管理体系&#xff0c;在光学…

使用 useSeoMeta 进行 SEO 配置

title: 使用 useSeoMeta 进行 SEO 配置 date: 2024/7/30 updated: 2024/7/30 author: cmdragon excerpt: 摘要&#xff1a;本文介绍了Nuxt3中的useSeoMeta组合函数&#xff0c;用于简化和优化网站的SEO配置。通过这个工具&#xff0c;开发者可以在Nuxt3项目中方便地设置页面…

C++ - 负载均衡式在线OJ

目录 一.项目的宏观结构 1.1 只实现类似 leetcode 的题⽬列表在线编程功能 1.2 项⽬宏观结构 1.3编写思路 二.所⽤技术与开发环境 2.1 所用技术 2.2 开发环境 三.compiler 服务设计 3.1 编译功能 3.2 日志功能 3.3 运⾏功能 3.4 编译并运⾏功能 3.5 把编译并运⾏功…

OpenBayes 教程上新 | 文生图、图生图、图像修复三合一神器, HiDiffusion 一键启动教程现已上线!

扩散模型已成为高分辨率图像合成的主流方法&#xff0c;传统的扩散模型虽然在图像合成方面取得了显著进展&#xff0c;但在扩展到更高分辨率时往往面临对象重复和计算成本增加的问题。 旷世科技开源的高分辨率框架 HiDiffusion&#xff0c;由分辨率感知 U-Net (RAU-Net) 和改进…

【手撕数据结构】链表高频面试题

目录 移除链表元素反转链表链表的中间节点倒数第k个节点反转链表(初阶)快慢指针法(进阶) 合并两个有序链表链表分割链表的回文结构 移除链表元素 思路:由题目可知我们需要在给定的一个链表中移除值为val的节点&#xff0c;这里需要注意的情况就是全是val的链表移除后为空链表和…