Python_数据容器_列表list

news2024/11/17 19:42:32

一、数据容器入门

使用场景:批量存储、批量使用多份数据

Python中的数据容器:

一种可以容纳多份数据的数据类型,容纳的每一份数据称之为一个元素。每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。

总结:

1.什么是数据容器?

一种可以存储多个元素的Python数据类型

2.Python有哪些数据容器?

list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)

它们各有特点,但是都可以满足容纳多个元素的特性。

二、数据容器之list(列表)

1.list(列表)定义

 列表内的每一个数据,称之为元素

  • 以 [ ]作为标识

  • 列表内每一个元素之间,用逗号隔开

 元素的数据类型没有任何限制,元素也可以是列表-->嵌套列表

# 定义一个列表list

my_list = ["bear",12,'python']

print(my_list)

print(type(my_list))

# 元素类型无限制

my_list = ["bear",12,True]

print(my_list)

print(type(my_list))

# 定义一个嵌套列表

my_list = [["1",'2'],[12,32],True]

print(my_list)

print(type(my_list))

2、列表list的下标索引

能够使用列表的下标索引从列表中取出元素 列表[下标] --即可取出对应位置元素

列表中的每一个元素都有其位置下标索引 ,从前向后的方向,从0开始依次递增。按照下标索引既可以取到对应位置的元素;也可以反向索引从后向前,从-1开始,依次递减(-1、-2、-3.....)

对于嵌套列表也可以取出对应位置的元素,先取出外层列表的下标再取内层元素对应的下标

# 通过下标索引来取出对应位置的数据 正向

my_list = ['tom','lily','rose']

print(my_list[0])

print(my_list[1])

print(my_list[2])

# 错误示范-->通过索引下标取数据一定不能超出索引范围--否则会报错:IndexError: list index out of range

# print(my_list[3])

# 通过下标索引来取出对应位置的数据 反向

print(my_list[-1])  # rose

print(my_list[-2])  # lily

print(my_list[-3])  # tom

# 取出嵌套列表中的元素 先外后内

my_list = [["1",'2'],[12,32],True]

# 取出[12,32]中的32

print(my_list[1][1])

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

3、列表list的常用操作方法

列表提供的功能:

  • 插入元素

  • 删除元素

  • 清空列表

  • 修改元素

  • 统计元素个数

等功能,称之为列表的方法

(1)列表的查询功能(方法)

  •    查找某元素的下标

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

       语法:列表.index(元素)  index就是列表对象(变量)内置的方法(函数)

my_list = ['quen','king','diff','python']

# 1.1查找某元素在列表中的下标索引

index = my_list.index('diff')

print(f"diff在列表中的下表索引值:{index}")

# 1.2如果查找某元素在列表中的下标索引不存在,报错:ValueError: 'jiff' is not in list

index = my_list.index('jiff')

print(f"diff在列表中的下表索引值:{index}")

(2)列表的修改功能(方法)

  • 修改特定位置的(索引)的元素值:

       语法:列表[下标] = 值

# 2.修改特定下标索引的值

my_list[1] = 'lydia'

print(f"列表修改元素值后,结果是{my_list}")
  • 插入元素:

       语法:列表.insert(下标,元素)  ,在指定的下标位置,插入指定的元素

my_list.insert(2,'sunrise')

print(f"列表修改元素值后,结果是{my_list}")
  • 追加元素:方式1--追加单个元素

       语法:列表.append(元素)  ,将指定的元素,追加到列表的尾部

my_list.append('tail')

print(f"列表在尾部追加一个元素值后,结果是{my_list}")
  • 追加元素:方式2--追加多个元素

       语法:列表.extend(其他数据容器)  ,将其它数据容器的内容取出,依次追加到列表尾部

my_list1 = ['1,2',True]

my_list.extend(my_list1)

print(f"列表追加一个新的列表(数据容器)值后,结果是{my_list}")
  • 删除元素:

       语法1:del列表[下标]  

       语法2:列表.pop(下标)   pop()本质是将指定下标的元素取出来然后返回出去 --即就是能得到返回值,同时也将元素从列表中移除掉了

# 6.删除指定下标索引的元素 2种方式

my_list = ['quen', 'lydia', 'diff', 'python']

# 6.1方式1:del

del my_list[2] # 删除'diff'

print(f"列表删除元素后结果是:{my_list}")

# 6.2方式2:列表.pop(下标) pop()本质是将指定下标的元素取出来然后返回出去 --即就是能得到返回值,同时也将元素从列表中移除掉了

my_list = ['quen', 'lydia', 'diff', 'python']

element = my_list.pop(2)

print(f"通过pop方法取出的元素为{element},取出元素后列表为:{my_list}")
  • 删除某元素在列表中的第一个匹配项:

       语法:列表.remove(元素)    拿到传入的元素后从前到后搜索满足的第一个元素被删掉,且只能删掉一个

# 7.删除某元素在列表中的第一个匹配项 语法 列表.remove(元素)

my_list = ['quen', 'lydia', 'diff', 'python','diff','lydia']

my_list.remove('diff')

print(f"通过remove方法移除值为‘diff’的元素后,列表的结果是:{my_list}")
  • 清空列表内容:

       语法:列表.clear()  

my_list.clear()

print(f"列表被清空,结果是:{my_list}")
  • 统计某元素在列表内的数量:

       语法:列表.count(元素)

# 9.统计列表内某元素的数量 语法:列表.count(元素)

my_list = ['quen', 'lydia', 'diff', 'python','diff','lydia']

count = my_list.count('lydia')

print(f"列表中‘lydia'的数量为:{count}")
  • 统计列表内,有多少元素:

       语法:len(列表)

# 10.统计列表内全部元素的数量  len(列表)

my_list = ['quen', 'lydia', 'diff', 'python','diff','lydia']

count = len(my_list)

print(f"列表中元素的数量为:{count}")

列表list的方法总览

4、列表list的特点

  • 可以以容纳多个元素(上限为2**63-1)

  • 可以容纳不同类型的元素

  • 数据时有序存储的

  • 允许重复存在

  • 可以修改(增删改)

5、列表的循环遍历/迭代

1) 使用while遍历列表中元素

2) 使用for遍历列表中元素 

对比while,for循环更适合对列表等数据容器进行遍历

语法:

for 临时变量 in 数据容器:

    对临时变量进行处理

while循环和for循环对比:

 

--------------------------------------------------------------------------------------------------转载注明出处

--------------------------------------------------------------------------------------------------#springbear#

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

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

相关文章

Windows下的RabbitMQ 安装

1.到rabbitmq官网下载安装程序 Messaging that just works — RabbitMQ 1.1 我选择的事RabbitMQ 3.11.3 1.2 点击链接后进入下面的界面 1.3 继续点击RabbitMQ 3.11.3 release 链接 Release RabbitMQ 3.11.3 rabbitmq/rabbitmq-server GitHub 1.4 在页面最下面可以看到下…

葡萄糖-聚乙二醇-四嗪/叶酸/多巴胺 Glucose-PEG-TZ/FA/Dopamine

葡萄糖-聚乙二醇-四嗪/叶酸/多巴胺 Glucose-PEG-TZ/FA/Dopamine 叶酸是一种水溶性维生素,分子式是C19H19N7O6。因绿叶中含量十分丰富而得名,又名蝶酰谷氨酸。在自然界中有几种存在形式,其母体化合物是由蝶啶、对氨基苯甲酸和谷氨酸3种成分结…

购物车案例的实现

最终效果&#xff1a; 1.计算属性 用于计算最终价格&#xff0c;对此计算使用计算属性最佳 原理是遍历books中的每一个属性&#xff0c;价格*数量 computed:{totalPrice(){let totalPrice0// 1.普通的for循环// for (let i0;i<this.books.length;i)// {// totalPriceth…

java+jsp+servlet+mysql高速公路事故管理(交通管理)系统

项目介绍&#xff1a; 一个使用javamysql开发的jspservlet高速公路事故管理系统。 功能主要包括&#xff0c;事故管理&#xff08;可以上传事故照片&#xff09;、车辆信息管理、车主信息管理、违法信息管理、可以按照柱状图&#xff08;饼状图、折线图&#xff09;分析事故…

为什么你需要Twitter群控

爆粉必备 Twitter爆粉的原理是什么&#xff1f; Twitter爆粉怎么实现呢&#xff1f;你先关注别人&#xff0c;然后和人家互动&#xff0c;比如发私信、点赞、评论转发帖子&#xff0c;让别人看到你并回关你&#xff0c;一段时间不回关&#xff0c;你就取消对他们的关注&#…

html中的固定定位的用法

文章目录 前言 一、固定定位的理解&#xff1f; 二、固定定位用在哪里&#xff1f; 1、给大家分享一个案例 2、代码编写 1、先准备一个小案例 2、效果如下&#xff0c;浏览器左上角有个盒子&#xff0c;右边有滚动条 3、我想让他像我们的csdn一样&#xff0c;这个盒子固定在右下…

科技连接美好未来 | 美格智能5G FWA解决方案持续推进

近年来&#xff0c;5G网络在全球范围的全面推广和普及&#xff0c;促使市场对高速宽带连接的需求持续增长&#xff0c;5G FWA作为低成本的网络接入选项&#xff0c;或将成为5G市场新一代的杀手级应用。 5G的持续推动&#xff0c;促使FWA出货量呈现出高速增长趋势。就2020年&…

学了C++能做什么?

相信很多人接触编程都是源于大学期间的那堂C语言程序编程&#xff0c;但是这门课却只告诉了你编程语言是什么&#xff0c;却没告诉你要怎么去熟练掌握编程。所以&#xff0c;不可避免的是许多人在毕业前夕才发现虽然学会了C&#xff0c;但是好像却不知道能干什么&#xff0c;能…

[附源码]java毕业设计学生考试成绩分析系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

浅学Go下的ssti漏洞问题

前言 作为强类型的静态语言&#xff0c;golang的安全属性从编译过程就能够避免大多数安全问题&#xff0c;一般来说也唯有依赖库和开发者自己所编写的操作漏洞&#xff0c;才有可能形成漏洞利用点&#xff0c;在本文&#xff0c;主要学习探讨一下golang的一些ssti模板注入问题…

汽车制造企业借力泛微京桥通,推动采购流程化、数字化

新常态下汽车采购数字化是趋势 随着互联网的发展、智能技术的兴起和市场竞争态势的变革&#xff0c;汽车制造企业不断融合新技术&#xff0c;打造新产品&#xff1b;同时&#xff0c;融合线上线下的营销和服务方式&#xff0c;创新运营模式&#xff0c;提升业务效率。 汽车制…

Android Java反射与Proxy动态代理详解与使用基础篇(一)

一、介绍 什么是反射&#xff1f; 反射是java语言的一个特性&#xff0c;它允程序在运行时&#xff08;注意不是编译的时候&#xff09;来进行自我检查并且对内部的成员进行操作。 反射是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法…

夯实C++基础学习笔记

第一章 内存模型和编译链接 1. 掌握进程虚拟地址空间区域划分 编程语言产生&#xff1a;指令数据 exe 磁盘加载到内存&#xff0c;不可能直接加载到内存。 x86系统&#xff1a;linux系统会给当前进程分配一个 2^32 大小的空间 4G 它不存在&#xff0c;你却看得见&#xff0…

Bio-Helix丨Bio-Helix艾美捷Ponceaus S染色液说明书

Bio-Helix艾美捷Ponceaus S染色液是一种用于评估蛋白质印迹转移效率的现成膜染色剂。该染色剂适用于硝化纤维或PVDF膜上的快速可逆蛋白质染色。Ponceau S染色是可逆的&#xff0c;可以在0.1%NaOH中短时间培养去除。 图&#xff1a; Ponceau S溶液可用于评估硝化纤维和PVDF膜上的…

正点原子stm32F407学习笔记6——外部中断实验

一、GPIO与中断线的映射关系 GPIO 的管脚GPIOx.0 ~ GPIOx.15(xA,B,C,D,E&#xff0c;F,G,H,I)分别对应中断线 0~15。这样每个中断线对应了最多 9 个 IO 口&#xff0c;以线 0 为例&#xff1a;它对应了 GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0,GPIOH.…

springcloud7:服务注册与发现总结篇

eureka总结 问题1&#xff1a;为什么使用服务注册&#xff1f; 服务越来越多&#xff0c;负责存储和管理维护服务地址 问题2&#xff1a;如何通过名称访问地址&#xff1f; 即服务中心存储的为名称地址的键值对&#xff0c;服务注册中心会通过名称来返回访问地址&#xff08;ip…

设备树属性获取,通过键获取值的相关函数实验

1.int of_property_read_u32_index(const struct device_node *np, const char *propname, u32 index, u32 *out_value) 功能&#xff1a;获取32位无符号整型的值 参数&#xff1a; np:节点结构体指针 propname:键名 index:索引号 out_value:获取到的值 返回值&#xff1a;成功…

代码随想录训练营第29天|LeetCode 491.递增子序列、46.全排列、47.全排列 II

参考 代码随想录 题目一&#xff1a;LeetCode 491.递增子序列 这个题同样涉及到去重&#xff0c;但是不能再使用子集II那题中的去重方法&#xff0c;在那个题中用下面的代码去重&#xff1a; if (i > 0 && nums[i] nums[i - 1] && !used[i - 1]){conti…

【机器学习笔记】吴恩达机器学习

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为学习吴恩达机器学习视频的同学提供的随堂笔记。 &#x1f4da;专栏简介&#xff1a;在这个专栏&#xff0c;我将整理吴恩达机器学习视频的所有内容的笔记&…

麒麟系统上使用linuxdeployqt 编译安装

linuxdeployqt 去除git校验可以编译处理 银河麒麟V4&#xff0c;V10&#xff0c;本篇以V10记录&#xff0c;参照上一篇可安装V4、V7、V10三个版本&#xff0c;麒麟V4系自带了Qt&#xff0c;麒麟V10没有自带Qt&#xff0c;需要自己编译搭建环境。 linuxdeployqt编译&#xff08…