Python基础-数据类型之序列

news2025/1/23 6:18:21

序列:一种数据结构,序列中的每个元素都会被分配到一个序号(元素的位置)。

常用的序列有:列表、元组、字符串。

一、序列的操作:

1:通过索引取值

nums_list = [1,2,3,4]
print(nums_list[0])       # 1

nums_tuple = (1,2,3,4)
print(nums_tuple[1])      # 2

nums_str = "1234"
print(nums_str[3])        # 4

2:序列切片

nums_list = [1,2,3,4]
print(nums_list[0:2])     # [1,2]

nums_tuple = (1,2,3,4)
print(nums_tuple[1:4])    # (2,3,4)

nums_str = "1234"
print(nums_str[2:])       # 34

切片:nums[startindex:endindex:step],startindex表示从哪个索引开始取值(对应索引的值要取),endindex表示到哪个索引结束取值(对应索引的值不取),step表示下一次取值间隔几个索引(即步长,不写的话默认为1)

从第一个元素开始取值,startindex可以不填写

取到最后一个元素,endindex可以不填写

例:nums= [1,2,3,4,5,6,7,8,9,10],需要得到[1,2,3,4,5,6,7,8,9,10]

print(nums[:])   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

例:nums = [1,2,3,4,5,6,7,8,9,10], 需要得到[2,4,6,8]

print(nums[1:8:2])   # [2,4,6,8],从索引1开始取值,到索引8结束,每次间隔2个值

例:nums = [1,2,3,4,5,6,7,8,9,10], 需要得到[9,8,7,6]

# 方法一,从左往右取索引,索引从0开始数,步长为-1
print(nums[8:4:-1])    # [9, 8, 7, 6]
# 方法二,从右往左取索引,索引从-1开始数,步长为-1
print(nums[-2:-6:-1])   # [9, 8, 7, 6]

注意:当步长为负数时,起始位置startindex的值 > 结束位置endindex的值

3:序列相加:相同类型的序列才能相加

序列相加就是将一个序列中的元素追加到另一个序列的末尾,并返回一个新序列

例:

# 列表
a_list = [1,2,3]
b_list = [5,6,7]
result = a_list+b_list
print(result)     # [1, 2, 3, 5, 6, 7]
print(a_list)     # [1, 2, 3]
print(b_list)     # [5, 6, 7]
# 元组
a_tuple = (1,2,3)
b_tuple = (5,6,7)
result = a_tuple + b_tuple
print(result)      # (1, 2, 3, 5, 6, 7)
print(a_tuple)     # (1, 2, 3)
print(b_tuple)     # (5, 6, 7)
# 字符串
a_str = "abc"
b_str = "def"
result = a_str + b_str
print(result)      # abcdef
print(a_str)       # abc
print(b_str)       # def

不同类型的序列相加,会报错

 4:序列相乘:

序列相乘就是一个序列与int类型的数字相乘,当数字为正整数时,就是将同一个序列重复追加到序列末尾,返回一个新的序列,当数字为负整数和0时,会返回一个空的新序列。

# 列表
a_list = [1,2,3]
result_1 = a_list * 2
print(result_1)       # [1, 2, 3, 1, 2, 3]
print(a_list)         # [1, 2, 3]
result_2 = a_list * 0
print(result_2)       # []
print(a_list)         # [1, 2, 3]
result_3 = a_list * -2
print(result_3)       # []
print(a_list)         # [1, 2, 3]

# 元组
a_tuple = (1,2,3)
result_1 = a_tuple * 2
print(result_1)       # (1, 2, 3, 1, 2, 3)      
print(a_tuple)        # (1, 2, 3)
result_2 = a_tuple * 0
print(result_2)       # ()
print(a_tuple)        # (1, 2, 3)
result_3 = a_tuple * -2
print(result_3)       # ()
print(a_tuple)        # (1, 2, 3)

# 字符串
a_str = "abc"
result_1 = a_str * 2
print(result_1)       # "abcabc"
print(a_str)          # "abc"
result_2 = a_str * 0
print(result_2)       # ""
print(a_str)          # "abc"
result_3 = a_str * -2
print(result_3)       # ""
print(a_str)          # "abc"

5:判断成员是否在序列中

成员运算符:

运算符含义
in如果在指定的序列中找到值返回 True,否则返回 False。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。

例:

# 列表
a_list = [1, 'a', 'b', 2]
print('a' in a_list)          # True
print(3 in a_list)            # False
print('a' not in a_list)      # False
print('c' not in a_list)      # True

# 元组
a_tuple = (1, 'a', 'b', 2)
print(1 in a_tuple)           # True
print(3 in a_tuple)           # False
print('b' not in a_tuple)     # False
print('c' not in a_tuple)     # True

# 字符串
a_str = "asd123"
print('1' in a_str)           # True
print('4' in a_str)           # False
print('b' not in a_str)       # True
print('d' not in a_str)       # False

6:获取序列的长度:len()。返回值为具体的数值

a_list = ["a", "ab", 1, 2, 3]
print(len(a_list))        # 5
a_tuple = (1, 2, 3, 4, 5, 6)
print(len(a_tuple))       # 6
a_str = "asdfghjkj"
print(len(a_str))         # 9

7:获取序列的最大值max()、最小值min()

获取序列中的最大值,最小值时,序列中的元素类型要保持一致

a_list = ["a", "ab", "abc"]
print(max(a_list))         # 'abc'
print(min(a_list))         # 'a'
a_tuple = (1, 2, 3, 4, 5, 6)
print(max(a_tuple))        # 6
print(min(a_tuple))        # 1
a_str = "asdfghjkj"
print(max(a_str))          # 's'
print(min(a_str))          # 'a'

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

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

相关文章

消息队列的特点

一、背景:在分布式系统中是如何处理高并发的由于在高并发的环境下,来不及同步处理用户发送的请求,则会导致请求发送阻塞。比如说,大量的insert、update之类的请求同时到达数据库MYSQL,直接导致无数的行锁表锁&#xff…

零基础机器学习做游戏辅助第十一课--原神自动钓鱼(一)

一、序言 前面我们已经学习了神经网络,卷积神经网络和强化学习等内容,也都做了对应的实例。但是我们的课是做游戏辅助,那么肯定要去游戏里实战一番。 今天就带领大家用我们所学的知识对近两年非常火爆的游戏《原神》进行实战。我们以自动钓鱼为例。 二、观察游戏玩法制定方案…

Seata源码学习(五)- Seata服务端(TC)源码解读

Seata源码分析- Seata服务端(TC)源码解读 上节课我们已经分析到了SQL语句最终的执行器,但是再往下分析之前,我们需要先来分析一下TM客户端与TC端通讯以后,TC端的具体操作 服务端表解释 我们的Seata服务端在应用的时…

RabbitMq及其他消息队列

消息队列中间价都有哪些 先进先出 Kafka、Pulsar、RocketMQ、RabbitMQ、NSQ、ActiveMQ 架构 消费推拉模式 客户端消费者获取消息的方式,Kafka和RocketMQ是通过长轮询Pull的方式拉取消息,RabbitMQ、Pulsar、NSQ都是通过Push的方式。 pull类型的消息队…

OpenCV制作Mask图像掩码

一、掩膜(mask) 在有些图像处理的函数中有的参数里面会有mask参数,即此函数支持掩膜操作,首先何为掩膜以及有什么用,如下: 数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中&am…

PowerShell Install VNC-Server VNC-Viewer

前言 VNCConnect是一款屏幕共享、远程控制电脑软件,可以让您连接到世界上任何地方的远程计算机,实时观看其屏幕,并像坐在它前面一样进行控制。RealVNC可以将人和设备连接到任何地方,实现控制、支持、管理、监控、培训、协作等等。…

Java——不同的子序列

题目链接 leetcode在线oj题——不同的子序列 题目描述 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新…

【C语言学习笔记】:数组、指针相关面试题

无特殊说明情况下,下面所有题s目都是linux下的32位C程序。 「1、计算以下sizeof的值。」 char str1[] {a, b, c, d, e}; char str2[] "abcde";char *ptr "abcde";char book[][80]{"计算机应用基础","C语言","C程…

Apple Safari 16.3 - macOS 专属免费浏览器 (独立安装包免费下载)

Safari 浏览器 16 for macOS Montery, Big Sur 请访问原文链接:https://sysin.org/blog/apple-safari-16/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 之前 Safari 浏览器伴随 macOS 更新一起发布&#xff…

python的opencv操作记录12——Canny算子使用

文章目录Canny算子非极大值抑制非极大值抑制中的插值滞后阈值实际应用直接使用Canny算子使用膨胀先阈值分割Canny算子 上一篇说到,我在一个小项目里需要在一幅图像中提取一根试管里的两种液体的截面。为了达到这个目的使用传统图像里的区域分割技术,实际…

脏话越多,代码越好!

你在读开源代码的时候有没有遇到过这种注释?What the fuck ?Dude,WTFFuck this !我遇到过,每次都忍不住笑,心想老外可真是性情中人,遇到不爽的地方就开骂,还直接写到注释中,甚至代码中。Bob大叔…

机械狗控制算法

一. MIT Cheetah特点 1.驱动器 Cheetah 2采用了定制的本体感受驱动器设计,具有高冲击缓解、力控制和位置控制能力。这种设计使其能够自主跳过障碍物,并以6m/s的高速跳跃,但其运动范围有限,只能进行矢状面运动。 Cheetah 3采用高扭…

C++11 lambda

Lambda 介绍 Lambda 函数也叫匿名函数, 是C 11中新增的特性; 1. Lambda函数的好处 如果你的代码里面存在大量的小函数,而这些函数一般只被调用一次,那么将他们重构成 lambda 表达式。 Lambda函数使代码变得更加紧凑、更加结构化和更富有表现…

解决gocui库的中文显示缺少的bug

gocui库地址 https://github.com/jroimartin/gocui 使用原由 最近写文档都用emacs,git客户端用的是magit。 但是写代码现在都用lvim,在lvim和终端下喜欢上了使用lazygit做git客户端。 非常喜欢lazygit在终端上的界面,扒拉了下github上代码…

【最优化理论】线性规划

文章目录什么是线性规划(Linear Programming,LP)?线性规划的标准形式非标准形LP模型转化为标准形LP模型基本概念基本解&基矩阵&基变量&非基变量基本可行解&可行基矩阵&非退化的基本可行解&退化的基本可行…

「JVM 执行引擎」栈架构的字节码的解释执行引擎

JVM 执行引擎在执行 Java 代码时有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择; HotSpot 实际的实现中,模版解释器工作时,并不是按照概念模型中进行机械式计…

虹科分享 | CANopen协议基础知识——LSS服务

CANopen是一种架构在CAN串行总线系统上的高层通讯协议,常被用于嵌入式系统与工业控制领域,包括电机控制、机器人制造、医疗、汽车等多个行业领域。本篇文章将主要介绍CANopen的LSS服务。 一. LSS概述 Layer setting service (LSS)是CANopen的设置服务与…

Self-Supervised Log Parsing 自监督日志解析

摘要 日志在软件系统的开发和维护过程中被广泛使用,收集运行时事件并允许跟踪代码执行,从而支持各种关键任务,如故障排除和故障检测。大型软件系统会生成大量的半结构化日志记录,这对自动化分析提出了重大挑战。将带有自由形式文…

网站代理是什么?有什么需要注意的?

如今,网站代理已经成为一种不可或缺的经营方式。无论是企业还是个人,都需要通过代理来获得更多的流量和市场份额。 一、网站代理的优势 网站代理的优势在于能够为您提供更加专业、周到的服务。这些优势包括:1.丰富的内容资源,能…

2022年FIT2CLOUD飞致云开源成绩单

2023年2月15日,中国领先的开源软件公司FIT2CLOUD飞致云发布《2022年开源成绩单》,盘点公司2022年全年在开源软件产品与社区运营方面的表现。目前,飞致云旗下的核心开源软件组合包括JumpServer开源堡垒机、DataEase开源数据可视化分析平台、Me…