列表(list)

1.列表概念

变量:使用变量存储数据,,但是存在一个缺点:,一个变量一次只能存储一个数据

若要存储多个数据:一般使用列表

列表本质上面是一个有序的集合.

2.创建列表

 语法:

变量名 = 列表

列表名称 = [数据1,数据2........]

说明: 使用 [ ] 表示创建列表

  1. 列表中存储的数据为元素
  2. 列表中的元素从头到尾进行了编号,编号从0开始,这个编号被称为下标或者索引或者角标
  3. 索引的取值范围:0 ~~~~ 元素的个数 - 1
  4. 超过索引的范围:列表越界

代码演示:

# 创建列表
list1 = [] 空列表# 带元素的列表
list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]# 列表中的元素可以是不同的数据类型
list3 = [12,3.13,True,False,"hello","米西米西"]

注意: 将数据保存到列表的时候,不用考虑列表的大小,如果数据很大的话,底层会进行自动扩容.

3.获取元素

访问方式:通过索引访问列表中的元素【有序,索引:决定了元素在内存中的位置】

list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]
list2[0] # 表示第一个元素
list2[-1] # 表示最后一个元素
len(list2) # 表示获取列表元素的个数
list2[11] # 越界访问
list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]

4.替换元素(修改元素的值)

语法:列表名[索引] = 值

注意:列表中存储的是其实是变量,所以可以随时修改值

代码演示:

list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]
# 修改列表元素 语法:列表名[索引] = 值
print(list2)
list2[2] = "天狗"
print(list2)

5.遍历元素

list3 = ["肠粉","佛跳墙","白切鸡","云吞"]
'''
# 第一种方式:
for i in list3:
print(i)# 第二种方式: 通过索引的方式访问元素
for i in range(len(list3)):
print(list3[i])
'''
# 第三种方式:enumrate() 同时遍历索引和元素
for index,value in enumerate(list3):
print(index,value)

6.列表组合

代码演示:

#合并列表: 通过 + 实现
list = [12,34,6,8,3.13]
list1 = ["荔枝","龙眼","桂圆","榴莲","芒果"]
print(list,list1)# 通过 + 实现列表的合并 list + list1
list2 = list + list1
print(list2)

7.列表元素重复打印

重复输出列表中的元素: 通过 * 实现
list = [1,2,3]
list1 = list * 4
print(list1)

8. 判断元素是否在列表中

# 判断指定元素是否在列表中,使用成员运算符检查in和not in
# 返回值是一个布尔类型True和Falselist1 = [12,34,4.12,"haha","lele","hehe"]
print(12 in list1) # True
if "haha" in list1:print("字符串在列表中")
else:print("不在列表中")

9.列表切片

list2 = [13,45,2,35,7,9]
# 语法: 列表名[开始下标:结束下标] 
# 特点: 前闭后开 包含开始下标的元素不包含结束下标的元素 pr
int(list2[1:6])
print(list2[:4]) # [13, 45, 2, 35]
print(list2[1:]) # [45, 2, 35, 7, 9]
print(list2[:]) # [13, 45, 2, 35, 7, 9]
print(list2[-2:]) # [7, 9]

10.列表中的内置函数

# 1.添加元素
# a. append() 向列表的尾部追加元素
list1 = ["香妃","妲己","赵飞燕","杨贵妃","东施"]
print(list1)
# 追加单个元素
list1.append("西施")
# 追加多个元素的时候,不能直接追加,必须使用列表的方式追加,原列表变成了二维列表
list1.append(["王昭君","貂蝉","大小乔"])
print(list1)# b.extend 用于在列表末尾一次追加另一个列表中的多个元素
list1 = ["香妃","妲己","赵飞燕","杨贵妃","东施"]
list1.extend(["乾隆","商纣王","汉昭帝","唐玄宗","解博超"])
list1.extend("秦始皇") # "秦" "始" "皇"
print(list1)# c.insert() 在列表中指定的索引处插入元素,后面的其他的元素依次后延
list2 = ["秦始皇","汉武帝","曹操","刘备","孙权"]
list2.insert(1,"刘邦")
# 若想一次性插入多个元素使用列表的形式插入 原列表会变为二维列表
list2.insert(3,["诸葛亮","马超"])
print(list2)# 2. 删除元素
list2 = ["秦始皇", "汉武帝", "曹操", "刘备", "孙权"]
# pop() 传输的参数是下标 不传参数的时候,默认移除最后一个元素,返回的是原列表
print(list2)
# list2.pop() ["秦始皇","汉武帝","曹操","刘备"]
list2.pop(2) # ['秦始皇', '汉武帝', '刘备', '孙权']
print(list2)# remove() 传输的参数是指定移除的元素
list2.remove("刘备")
print(list2)# clear() 清空列表
print(list2)
list2.clear()
print(list2)  # []# 3.获取元素
list = [12, 34, 2, 5.23, True, False, "hello"]
# print(len(list)) # len 获取列表的长度# 获取列表中的最大值 max()
list1 = [12, 3, 4, 32, 98, 14, 3, 78, 3, 34, 3]
# print(max(list1))# 获取列表中的最大值 min()
print(min(list1))# 获取指定元素的索引 index(元素名称)
print(list1.index(98))# 4.其他用法
# 列表的其他用法
list = [12, 42, 34, 16, 87]
print(list)
reverse 翻转列表元素 注意:在原列表的内部进行翻转,不会生成新列表
list.reverse()
print(list)# sort() 对原列表元素进行排序 默认是升序 不会生成一个新的列表
# 升序
list.sort()
print(list)# 降序 在sort函数中传入reverse=True 实现降序
list.sort(reverse=True)
print(list)# sorted() 对列表元素进行排序,默认是升序, 排序的结果会生成一个新列表
# 升序
list1 = sorted(list)
# 降序 传入reverse=True
list1 = sorted(list, reverse=True)
print(list1)
list2 = ["a", "hello", "abe", "bc", "everyone"]
按照元素的长度进行排序
list3 = sorted(list2, key=len)
print(list3)

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

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

相关文章

什么是RSocket?它有哪些优势?

在传统Web应用开发过程中,我们都是基于HTTP协议实现请求-响应式的交互方式。这种交互方案很简单,但不够灵活,也无法应对所有的响应式应用场景。那么,有没有在网络协议层上提供更加丰富的交互方式呢?答案是肯定的&#…

Alibaba SpringCloud集成Nacos、Sentinel实现服务治理-17

关于服务治理 总体而言,限流和降级作为微服务架构中的重要机制,尽管在实现上可能有多种方式,但它们都着眼于保护服务提供者和消费者,在面对异常情况时确保系统稳定运行。限流关注于保护服务提供者,控制请求流量&#…

【linux系统学习教程 Day02】网络安全之Linux系统学习教程,管道,文件内容统计,过滤排序,去重,目录介绍

1-4 管道 管道符号: | ,可以将前面指令的执行结果,作为后面指令的操作内容。 ## 比如过滤ip地址 ip addr | tail -4 | head -1 解释一下就是先执行 ip addr ,得到的结果当做 tail -4 的输入,意思就是查看ip addr 结果的后四行内容…

Android 控件自定义属性三部曲

在Android开发中,自定义控件属性是提高控件复用性和定制化的重要手段。通过定义自定义属性,你可以为控件添加额外的配置选项,从而使得控件更加灵活和易用。以下是一个示例,展示如何创建一个具有自定义属性的Android控件。 1. 创建…

Oracle 的 RMAN(Recovery Manager) 和 DM(达梦数据库)的 DMRman异同

Oracle 的 RMAN(Recovery Manager) 和 DM(达梦数据库)的 DMRman异同 Oracle 的 RMAN(Recovery Manager) 和 DM(达梦数据库)的 DMRman 是两个分别用于不同数据库系统的备份和恢复工具…

基于NIOS-II软核流水灯实现

文章目录 一、创建工程二、系统设计1. 在 “component library” 标签栏中找到 “Nios II Processor” 后点击 Add2. 在 ”Component Library” 标签栏中的查找窗口输入 jtag 找到 ”JTAG UART ”,然后点击 Add3. 添加片上存储器 On-Chip Memory(RAM)核4. 查找窗口输…

如何创建和运营新版Facebook粉丝专页

在众多平台中,Facebook粉丝专页无疑是连接全球消费者、扩展品牌影响力的重要工具。如果你是初次接触Facebook粉丝专页,可能会感到有些迷茫——毕竟,只是听说过它的好处,却不知道如何开始。 Facebook粉丝专页不仅是一个分享产品信…

使用Docker创建verdaccio私服

verdaccio官网 1.Docker安装 这边以Ubuntu安装为例Ubuntu 安装Docker​,具体安装方式请根据自己电脑自行搜索。 2.下载verdaccio docker pull verdaccio/verdaccio3.运行verdaccio 运行容器: docker run -it -d --name verdaccio -p 4873:4873 ver…

unordered_map、unordered_set底层封装

文章目录 一、先实现哈希桶1.1哈希桶的实现方法1.2日常普遍的哈希桶存放的数据有两种:字符串和整形1.3哈希桶的实现代码详解1.3.1哈希桶的两种仿函数(int和string)1.3.2哈希桶的节点(如果桶非常深,这里考虑挂红黑树&am…

Android内存不足的监测

ComponentCallbacks2 是 Android 中的一个接口,用于接收内存相关的回调。它主要用于检测应用的内存使用情况,并在系统内存不足时释放不必要的资源。实现这个接口可以帮助应用在内存紧张时更好地管理资源。 以下是一个 Kotlin 示例代码,展示如…

mysql的优缺点是什么

MySQL作为一个广泛使用的开源关系型数据库管理系统,具有其独特的优点和缺点。 MySQL的优点主要体现在以下几个方面: 性能优越:MySQL支持大量的并发连接,同时拥有很高的查询速度。易于使用:MySQL使用标准的SQL语言&am…

苹果M4芯片:大模型本地运算的转折点

在人工智能和机器学习领域,大模型的兴起对硬件提出了前所未有的挑战。苹果公司最近推出的M4芯片,被视为其在这场竞赛中的“第一式”。本文将探讨M4芯片的特点,并与其他芯片进行比较。 M4芯片的亮点 Neural Engine算力:M4芯片的…

【八股系列】vue中计算属性computed和普通属性method的区别是什么?

1. 计算属性computed computed是基于它们的依赖项进行缓存的。如果依赖项没有发生变化,Vue.js 将返回缓存的结果,而不是重新计算。这可以大大提高性能,尤其是在处理复杂的计算时。computed是只读的。一旦在模板中使用了计算属性,…

在Redis中Lua脚本为什么可以保证原子性

在Redis中,Lua脚本的原子性保证主要源于Redis的内部实现机制和Lua脚本的执行方式。以下是详细的阐述: Redis的单线程模型:Redis是一个基于内存、可基于Key-Value等多种数据结构的存储系统,它使用单线程模型来处理客户端的请求。这…

Samtec技术分享 | 电源/信号高密度阵列的新视角

【摘要/前言】 “角度”,这个词每天都出现在我们的生活中,有物理学的角度,如街边的拐角,还有视觉上的角度和观点中的角度~ Samtec新型 AcceleRate mP 高密度电源/信号互连系统正是从电源完整性 90度旋转的不同角度中诞生的。 …

深度学习之激活函数——Tanh

Tanh 双曲正切1函数(tanh),其图像与sigmoid函数十分相近,相当于sigmoid函数的放大版。在实际的使用中,tanh函数要优先于sigmoid函数。 函数表达式 t a n h e x − e − x e x e − x tanh\frac{e^x-e^{-x}}{e^xe^{-x}} tanhexe−xex−e−…

Git大文件无法直接push用git lfs track 上传大文件具体操作

Git 因为大文件push失败 回退到git add前用git lfs track单独添加大文件 以下work flow仅代表个人解决问题的办法,有优化流程的欢迎交流 回退到git add前 以下指令回退一个commit git reset --soft HEAD~1以下指令撤销所有git add操作,但不删除本地修…

【小程序】小程序如何适配手机屏幕

小程序如何适配手机屏幕 1. 使用rpx单位2. 百分比布局3. 弹性盒子(Flexbox)和网格布局4. 媒体查询5. 响应式布局6. 测试和调试 1. 使用rpx单位 rpx(responsive pixel)是小程序中的一种长度单位,可以根据屏幕宽度进行自…

数字绘画教学实训解决方案

一、建设背景 1.1政策背景 教育信息化政策推动:近年来,随着教育信息化政策的不断推动,各级教育部门纷纷出台相关政策,鼓励和支持教育信息化的发展。数字绘画作为现代艺术教育的重要组成部分,其教学实训解决方案的建设…

Nginx配置服务,监听80端口指向指定index.html

前言 正常服务器如果需要http服务,需要通过nginx进行服务设置,直接访问ip默认访问80端口,但指向哪里就需要通过nginx进行配置 安装nginx 更新系统软件包索引:在安装任何新软件之前,建议先更新系统的软件包索引&#…