Python自学☞序列和索引的相关操作

一、基本概念

1、概念

序列是一个用于存储多个值的连续空间,每个值都对应一个整数的编号,称为索引

2、切片的语法结构

注:切片可以访问序列一定范围内的元素

序列[start:end:step]       

start-->切片的开始索引(包含)       end-->切片的结束索引(不包含)    step-->步长(默认为1)

注1:若省略start即切片的开始索引,则默认从0开始

注2:若省略step即步长,则默认为1

注3:若省略end即切片的结束索引,则默认到序列最后一个元素结束(包含最后一个元素)

二、序列的操作

三、列表

1、列表的介绍

列表是指一系列的按特定顺序排列的元素组成。是Python中内置的可变序列,在Python中使用[]定义列表,元素与元素之间使用英文的逗亏分隔列表中的元素可以是任意的数据类型

2、列表的创建方式

(1)使用[ ]直接创建列表

语法结构:    列表名=[ element1,element2,......,elementN ]

(2)使用内置函数list()创建列表

语法结构:   列表名=list(序列)

(3)通过列表生成式创建列表

语法结构:lst=[ expression for item in range]

lst=[ expression for item in range if condition]

3、列表的删除

语法结构:  del 列表名

注:列表是序列的一种,所以序列的基本操作和操作符,列表都可以使用

4、enumerate(枚举)函数的使用语法结构

for index,item in enumerate(list):

      输出index,item                 

index-->表示序号               item-->表示元素

5、列表遍历操作的方式

(1)使用for循环

(2)使用for循环+索引

(3)使用枚举函数即enmuerate()函数

6、列表的相关操作

 7、列表的排序方式

(1)列表对象的sort方法

lst.sort(key=None,reverse=False)

key-->表示排序的规则                   reverse-->表示排序方式(默认为升序)

注:False表示升序,True表示降序

注:列表的排序是在原列表的基础上进行的,不会产生新的列表对象

(2)内置函数sorted()

sorted(iterable,key=None,reverse=False)

iterable-->表示排序的对象               key、reverse所代表的的意思与上面一样

注:会产生新的列表对象

四、元组

1、概念

元组是Python中内置的不可变序列,在Python中使用()定义元组,元素与元素之间使用英文的逗号分隔元组中只有一个元素的时候,逗号也不能省略

2、元组创建方式

(1)使用()直接创建元组

语法结构: 元组名=(element1,element2,......,elementN)

(2)使用内置函数tuple()创建元组

语法结构: 元组名=tuple(序列)

(3)删除元组

del  元组名

注:如果元组中只有一个数,则逗号不能省略。即t=(10,)

3、元组和列表的区别

五、字典

1、概念

字典类型是根据一个信息查找另一个信息的方式构成了“键值对”,它表示索引用的键和对应的值构成的成对关系

2、字典类型的创建方式

(1)使用{ }直接创建字典

d={key1:value1,key2:value2......}

注:key值相同时,value值进行了覆盖

如下面程序及运行结果所示:

d={10:'cat',20:'dog',30:"pet",20:'zoo'}
print(d)

(2)使用内置函数dict()创建函数

①通过映射函数创建字典

zip(lst1,lst2)

②语法结构:dict(key1=value1,key2=value2...)

3、注意事项

字典中的key是无序的,Python3.5及其之前的版本字典的key在输出时无序,但是从Python3.6版本之后Python解释器进行了处理,所以才会看到输出的顺序与添加的顺序“一致”

4、字典元素的取值:

d[key]或d.get(key)

注:当key值不存在时,d[key]会报错,d.get[key]可以指定默认值

5、字典元素的遍历:

(1)遍历出key与value的元组
for element in d.items():
        pass
(2)分别遍历出key和value
for key,value in d.items():

        pass

6、相关操作方法

7、字典生成式

d={ key:value for item in ranger }
d={key:value for key,value in zip(lst1,lst2)}

六、集合

1、概念

Python中的集合与数学中集合的概念一致Python中的集合是一个无序的不重复元素序列集合中只能存储不可变数据类型,在Python中集合使用定义与列表、字典一样,都是Python中的可变数据类型

2、创建方式

(1)使用{}直接创建集合

语法结构:s={element1,element2,......elementN}

(2)使用内置函数set()创建集合

语法结构:s=set(可迭代对象)

3、集合类型的操作符

代码:

A={10,20,4,60}
B={20,3,4,90,80}
#交集操作
print(A&B)
#并集操作
print(A|B)
#差集操作
print(A-B)
#补集操作
print(A^B)

运行结果:

4、集合的操作方法

5、列表、元组、字典、集合的区别

七、Python3.11的新特性

1、结构模型匹配

语法结构:

match data:
        case {}:
                pass

        case []:
                pass

        case():
                pass

        case_:
                pass

2、字典合并运算符

  |

3、同步迭代

语法结构:

match  data1, data2:

       case  data1,data2:

              pase

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

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

相关文章

Linux操作系统——线程概念

1.什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中&#x…

AI系统性学习01- Prompt Engineering

文章目录 面向开发者的Prompt Engineering简介Prompt设计原则1 环境配置2.两个基本原则2.1 原则1:编写清晰、具体的指令2.1.1 策略一:分割2.1.2 策略2:结构化输出2.1.3 策略3:模型检测2.1.4 策略4:提供示例 2.2 原则二…

起振电容在无源晶振电路中的作用

无源晶振电路中不只是有一个晶体谐振器。为了满足谐振条件让晶振起振正常工作,通常还有两个电容器。这两个电容被称之为“匹配电容”或者“谐振电容”。一般外接的这两个电容是为了使无源晶振两端的等效电容等于或接近于其负载电容。 在无源晶振电路中,…

北京保险服务中心携手镜舟科技,助推新能源车险市场规范化

2022 年,一辆新能源汽车在泥泞的小路上不慎拖底,动力电池底壳受损,电池电量低。车主向保险公司报案,希望能够得到赔偿。然而,在定损过程中,保司发现这辆车的电池故障并非由拖底事件引起,而是由于…

chown: changing ownership of ‘.‘: Permission denied 的一种解法

前言 最近在新电脑用 colima docker 启动服务遇到了这样的报错 chown: changing ownership of .: Permission denied在网上搜索了很久,不管是google还是stack overflow都没有突破口,只要绑定了 volumes 就会报错,按照网上说的方法&#xff…

搜维尔科技:使用SenseGlove Nova手套操纵其“CAVE”投影室中的虚拟对象

创造了一种基于 PC 的创新型多边沉浸式环境,让参与者完全被虚拟图像和声音包围。 需要解决的挑战: 传统的 VR 系统往往缺乏真实的触摸反馈,限制了用户的沉浸感。AVR Japan 旨在通过将触觉技术融入到他们的 CAVE 系统中来应对这一挑战&#x…

ROS机器人操作系统底层原理及代码剖析

本文介绍ROS机器人操作系统(Robot Operating System)的实现原理,从最底层分析ROS代码是如何实现的。 1、序列化 把通信的内容(也就是消息message)序列化是通信的基础,所以我们先研究序列化。 尽管笔者从事…

第五十五天| 583. 两个字符串的删除操作、72. 编辑距离

Leetcode 583. 两个字符串的删除操作 题目链接:583 两个字符串的删除操作 题干:给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 思考:动态规划。本题中…

太酷辣!程序员的技术测评利器免费用!

最近市场行情众所周知的差,追求降本增效已经是企业常态,企业希望不花太多成本就能快速招到“好用”的人才。这对计划招人的技术 Leader 来说也是不小的挑战: 招聘过程要低成本,还要快,而且能精准识别合适的人才&#…

单例模式( Singleton)——创建型模式

单例模式——创建型模式 什么是单例模式? 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。简单来说如果你创建了一个对象, 过一会儿后你决定再创建一个新对象, 此…

【LeetCode热题100】206. 反转链表(链表)

一.题目要求 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 二.题目难度 简单 三.输入样例 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2…

ECCV2022 | BEVFormer原文翻译

BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers BEVFormer: 通过时空变换器从多摄像头图像中学习鸟瞰图表征 Figure 1: We propose BEVFormer, a paradigm for autonomous driving that applies both Trans…