【Python_09】Python基础语法(数据容器之列表详解)

文章目录

  • 概述
  • Python中的数据容器
  • 列表
    • 1.1 定义列表
    • 1.2列表取值与修改
    • 1.3 列表遍历
      • 1.3.1 使用for循环遍历列表
      • 1.3.2 使用while循环遍历
      • 1.3.3 使用enumerate()函数获取索引和元素
    • 1.4 列表常用方法

概述

  • 数据容器是用来存储和组织数据的数据结构和对象。
  • 可以以不同的方式存储和操作数据,提供了对数据的访问、添加、删除和修改等操作。
  • 数据容器可以是简单的数据类型(如整数、浮点数、字符串)或复杂的数据结构(如列表、元组、字典、集合等)
  • 不同的数据容器具有不同的特点和用途,可以根据具体的需求选择合适的数据容器来存储和操作数据。

Python中的数据容器

在Python中,常用的数据容器主要有列表,元组,字典,集合

列表

特点:

  • 列表是可变的,可以动态地修改、删除和添加元素。
  • 列表的元素可以是不同类型的数据。
  • 列表的长度是可变的,可以根据需要动态调整。

1.1 定义列表

列表(List):一种有序的可变容器,可以保存任意类型的数据。列表使用方括号[]来表示,每个元素之间用逗号(,)分隔。
语法: my_list = []
在这里插入图片描述

# 定义列表
my_list = []
my_list2 = [1, 2, 3, 4, 5, 6]
my_list3 = ['p', 'y', 't', 'h', 'o', 'n']
my_list4 = [1, 'hello', (1, 2, 3), {1, 2, 3}, 5.5]
print(type(my_list)) # <class 'list'>
print(type(my_list2)) # <class 'list'>
print(type(my_list3)) # <class 'list'>
print(type(my_list4)) # <class 'list'>

1.2列表取值与修改

取值:val = my_list[列表下标索引]
修改值:my_list[列表下标索引] = 新值
注意:取值与修改值时,不能超出列表索引范围,否则报错提示:IndexError: list index out of range

# 定义列表
my_list = [1, 2, 3, 4, 5, 6]
# 取值
print(my_list[-1])  # 6
print(my_list[0])  # 1
# print(my_list[6])  # IndexError: list index out of range
# 修改列表值,根据索引下标修改
my_list[0] = 'a'
print(my_list)  # ['a', 2, 3, 4, 5, 6]# 定义列表
my_list_str = ['hello', 'world', 'I', 'like', 'python']
# 列表数据切片,获取子集列表
my_list_str_slice = my_list_str[1:4]
my_list_str_slice2 = my_list_str[::-1]  # 小技巧可以翻转列表数据,类似reverse()方法
print(my_list_str_slice)  # ['world', 'I', 'like']
print(my_list_str_slice2)  # ['python', 'like', 'I', 'world', 'hello']

1.3 列表遍历

1.3.1 使用for循环遍历列表

my_list = [1, 2, 3, 4, 5]
for item in my_list:print(item)
# 输出结果
“”“
1
2
3
4
5
6
”“”

1.3.2 使用while循环遍历

my_list = [1, 2, 3, 4, 5]
index = 0
length = len(my_list)
while index < length:print(my_list[index])index += 1
# 输出结果
“”“
1
2
3
4
5
6
”“”

1.3.3 使用enumerate()函数获取索引和元素

my_list = [1, 2, 3, 4, 5]
for index, item in enumerate(my_list):print(index, item)
# 输出结果
“”“
0 1
1 2
2 3
3 4
4 5
5 6
”“”

1.4 列表常用方法

以下是一些常见的列表方法,还有很多其他方法可以根据实际需要使用。

"""
以下是一些常见的列表方法,还有很多其他方法可以根据实际需要使用。
"""
# 定义列表
my_list_str = ['hello', 'world', 'I', 'like', 'python']# 1、append(element):在列表末尾添加一个元素
my_list_str.append('learning')
print(my_list_str)  # ['hello', 'world', 'I', 'like', 'python', 'learning']
# 2、extend(iterable):在列表末尾添加一个可迭代对象中的所有元素。
# 3. insert(index, element):在指定位置插入一个元素。
my_list_str.insert(1, 'list')
print(my_list_str)  # ['hello', 'list', 'world', 'I', 'like', 'python', 'learning']
# 4. remove(element):从列表中移除一个指定的元素,如果不存在则报错。
# my_list_str.remove('你好')  # ValueError: list.remove(x): x not in list
my_list_str.remove('hello')
print(my_list_str)  # ['list', 'world', 'I', 'like', 'python', 'learning']
# 5. pop(index):移除并返回列表中指定位置的元素。
element = my_list_str.pop(0)
print(element)  # list
print(my_list_str)  # ['world', 'I', 'like', 'python', 'learning']
# 6. index(element):返回列表中指定元素的索引,如果不存在则报错。
index = my_list_str.index('python')
# index_err = my_list_str.index('你好世界')  # 不存在列表中,报错: ValueError: '你好世界' is not in list
print(index)  # 3
# 7. count(element):返回指定元素在列表中出现的次数。
count = my_list_str.count('python')
print(count)  # 1
# 8. sort():对列表进行排序。
my_list_num = [23, 11, 24, 35, 56, 77, 18]
my_list_num.sort()
print(my_list_num)  # [11, 18, 23, 24, 35, 56, 77]
# 9. reverse():反转列表中的元素顺序。
my_list_str.reverse()
print(my_list_str)  # ['learning', 'python', 'like', 'I', 'world']
# 10. clear():移除列表中的所有元素。
my_list_str.clear()
print(my_list_str)  # []
# 11. len():返回列表中元素的个数。
length = len(my_list_num)
print(length)  # 7
# 12. copy(): 复制返回一个相同列表
my_list_num2 = my_list_num.copy()
print(my_list_num2)  # [11, 18, 23, 24, 35, 56, 77]

以上便是Python中列表常用到的列表操作了,数据容器之间的转换在后续学习完成元组,字典与集合后在一起去看看,有不对的地方,欢迎大家留言

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

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

相关文章

SpringBoot Event,事件驱动轻松实现业务解耦

什么是事件驱动 Spring 官方文档AWS Event Driven 简单来说事件驱动是一种行为型设计模式&#xff0c;通过建立一对多的依赖关系&#xff0c;使得当一个对象的状态发生变化时&#xff0c;所有依赖它的对象都能自动接收通知并更新。即将自身耦合的行为进行拆分&#xff0c;使拆…

@click 默认传递原生的事件对象

项目场景 [Day1] <template><div id"app"><h1>小黑记事本</h1><button click"handleClick">www</button><div class"head"><!-- 按键&#xff08;回车&#xff09;按下&#xff0c;出发add事件&…

Leetcode---376周赛---中位数贪心

题目列表 2965. 找出缺失和重复的数字 2966. 划分数组并满足最大差限制 2967. 使数组成为等数数组的最小代价 2968. 执行操作使频率分数最大 一、找到缺失和重复的数字 由于数据范围不是很大&#xff0c;可以直接暴力统计每个数字出现的次数&#xff0c;时间复杂度为O(n^2…

【Java中序列化的原理是什么(解析)】

&#x1f341;序列化的原理是什么&#xff1f; &#x1f341;典型-----解析&#x1f341;拓展知识仓&#x1f341;Serializable 和 Externalizable 接门有何不同? &#x1f341;如果序列化后的文件或者原始类被篡改&#xff0c;还能被反序列化吗?&#x1f341;serialVersionU…

【SpringCloud笔记】(9)分布式配置中心之Config

Config 概述 分布式系统当前面临的配置问题 微服务意味着要将单体应用中的业务拆分成一个个子服务&#xff0c;每个服务的粒度相对较小&#xff0c;因此系统中会出现大量的服务。 比如&#xff1a;有n个微服务连接同一套数据库&#xff0c;当连接数据库需要发生变动时&…

Exploring the Limits of Masked Visual Representation Learning at Scale论文笔记

论文名称&#xff1a;EVA: Exploring the Limits of Masked Visual Representation Learning at Scale 发表时间&#xff1a;CVPR2023 作者及组织&#xff1a;北京人工智能研究院&#xff1b;华中科技大学&#xff1b;浙江大学&#xff1b;北京理工大学 GitHub&#xff1a;http…

ARM串口通信编程实验

完成&#xff1a;从终端输入选项&#xff0c;完成点灯关灯&#xff0c;打开风扇关闭风扇等操作 #include "gpio.h" int main() {char a;//char buf[128];uart4_config();gpio_config();while(1){//接收一个字符数据a getchar();//发送接收的字符putchar(a);switch(…

redis复习笔记01(小滴课堂)

高并发的必备两大“核技术”队列和缓存 介绍本地缓存和分布式缓存 Nosql介绍和Reidis介绍 Linux服务器源码安装Redis6和相关依赖 在路径下上传压缩包。 上传压缩包。 版本更新了&#xff0c;但这是临时的。 版本更新了。 解压压缩包&#xff1a; 重命名&#xff1a; 我们可以看…

C# WPF上位机开发(MySql访问)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们学习了数据库sqlite&#xff0c;不过这是一种小型的数据库&#xff0c;作为内部使用还可以。但是&#xff0c;如果要与外面的其他供应商进…

蓝牙物联网在智慧医疗中的应用

物联网技术开启了万物互联的时代&#xff0c;并且随着智慧城市建设的加速推进及物联网技术对各行业的逐步渗透&#xff0c;“智慧”概念应运而生&#xff0c;诸如智慧能源、智慧交通、智慧医疗等“遍地开花”&#xff0c;可以说&#xff0c;物联网技术给各行业带来了产业模式上…

Arduino/Android 蓝牙通信系统设计解决方案

随着当今安全管理的发展需求以及国家对安全监控行业的支持&#xff0c;这几年&#xff0c;安全监控行业发展迅猛&#xff0c;各类监控系统百花齐放。传统的温度监控系统通过有线或其他方式传送温度数据&#xff0c;而本文提出了利用蓝牙无线传输数据的设计方案&#xff0c;这种…

FLStudio21中文版水果编曲软件好用吗?如何下载最新版本

FL Studio21版是一款在国内非常受欢迎的多功能音频处理软件&#xff0c;我们可以通过这款软件来对多种不同格式的音频文件来进行编辑处理。而且FL Studio 21版还为用户们准备了超多的音乐乐器伴奏&#xff0c;我们可以直接一键调取自己需要的音调。 FL Studio21版不仅拥有非常…

金和OA C6 gethomeinfo sql注入漏洞

产品介绍 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 漏洞概述 金和 OA C6 gethomeinfo接口处存在SQL注入漏洞&#xff0c;攻击者除了可以利用 SQL 注入漏洞获取…

vue3+ts pinia存储及持久化

index.ts 需要安装pinia-plugin-persist npm i pinia-plugin-persist -Simport { createPinia} from "pinia" // 引入批量的pinia持久存储插件 import piniaPluginPersist from pinia-plugin-persist const storecreatePinia(); store.use(piniaPluginPers…

【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手

TCP三次握手在Wireshark数据包中是如何体现的&#xff1f;在此之前&#xff0c;先熟悉TCP三次握手的流程。 TCP三次握手流程 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的传输层协议。在建立 TCP 连接时&#xff0c;需要进行三次握手&#xff0c;防止因为…

【自然语言处理】用Python从文本中删除个人信息-第二部分

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

uni-app pages.json之globalStyle全局页面样式配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

STM32软硬件CRC测速对比

硬件CRC配置 以及软硬件CRC速度对比 使用CUBEMX配置默认使用的是CRC32&#xff0c;从库中可以看出这一点 HAL库提供了以下两个计算函数 HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength); 这个函数用于在已有的CRC校验结果的基础上累积…

听GPT 讲Rust源代码--src/tools(26)

File: rust/src/tools/clippy/clippy_lints/src/methods/iter_out_of_bounds.rs 在Rust源代码中&#xff0c;iter_out_of_bounds.rs文件是Clippy lints库的一部分&#xff0c;该库用于静态代码分析&#xff0c;用于检测Rust代码中的潜在问题和错误。iter_out_of_bounds.rs文件中…

第三天:对ThreadLocal理解

ThreadLocal是什么&#xff1f; ThreadLocal&#xff0c;也就是线程本地变量。如果你创建了一个 ThreadLocal变量&#xff0c;那么访问这个变量的每个线程都会有这个变量的一个本地副本&#xff0c;多个线程操作这个变量的时候&#xff0c;实际是操作自己本地内存里面的变量&a…