【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…

一些简单OJ:进制转换,报数字,刷快手。

一、字符串转换成十进制整数 1、题目描述&#xff1a; 输入一个以#结束的字符串&#xff0c;本题要求滤去所有的非十六进制字符&#xff08;不分大小写&#xff09;&#xff0c;组成一个新的表示十六进制数字的字符串&#xff0c;然后将其转换为十进制数后输出。如果在第一个…

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

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

RTSP交互过程

RTSP&#xff08;Real-Time Streaming Protocol&#xff09;是一种用于实时流媒体传输的应用层协议。在RTSP通信中&#xff0c;以下是参与的主要角色和组件&#xff1a; 客户端&#xff08;Client&#xff09;&#xff1a;发送请求并接收服务器的响应。客户端可以是一个播放器应…

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++中的引用()

引用 引用是c中的&#xff0c;在C语言中是无法使用的。 引用的作用&#xff1a; 引用可以理解为给变量起一个别名(这时候大家可能会想到typedef,但是它们不同(原因看后面))。起一个别名之后&#xff0c;我们使用变量别名其实就是使用变量自己,生活中,我们会有自己的小名,那…

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

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

Android Intent 传递实体类到下一个 Activity

要在 Android 中通过 Intent 传递实体类对象&#xff0c;首先需要确保实体类对象实现了 Serializable 或 Parcelable 接口。 一、实现 Serializable 接口&#xff1a; public class MyObject implements Serializable {private String name;private int age;// 构造方法和其他…

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

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

力扣labuladong一刷day46天并查集

力扣labuladong一刷day46天并查集 文章目录 力扣labuladong一刷day46天并查集一、323. 无向图中连通分量的数目二、130. 被围绕的区域三、990. 等式方程的可满足性 一、323. 无向图中连通分量的数目 题目链接&#xff1a;https://leetcode.cn/problems/number-of-connected-co…

转场动画路径动画

本篇文章我们介绍下转场动画及路径动画。 1、概述 转场动画有三种类型&#xff0c;页面间转场、组件内转场、共享元素转场。 2、页面间转场 页面间转场需要在全局pageTransition方法内配置页面入场和页面退场时的自定义转场动效。 2.1、函数说明 名称 参数 必填 参数描述…

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

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

SLAM算法与工程实践——SLAM基本库的安装与使用(6):g2o优化库(3)构建g2o顶点

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接&#xff0c;本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址&#xff1a; SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…

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

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

vue利用深拷贝解决修改不能取消的问题

vue利用深拷贝解决修改不能取消的问题 在对某数据进行修改时考虑还需要进行“确认”、“取消”操作&#xff0c;那么在取消时就需要返回保留的数据内容&#xff0c;那么如何将原有数据保留一份则是关键性问题。 显然修改值不能直接进行原值的赋值操作&#xff0c;因为这样无法取…