超详解——Python 序列详解——基础篇

news2024/12/24 11:15:17

目录

1. 序列的概念

字符串(String)

列表(List)

元组(Tuple)

2. 标准类型操作符

连接操作符(+)

重复操作符(*)

索引操作符([])

切片操作符([:])

成员操作符(in 和 not in)

3. 序列的切片操作

基本切片

省略索引

切片对象

4. 序列内建函数

len() 函数

max() 函数

min() 函数

sum() 函数

sorted() 函数

reversed() 函数

enumerate() 函数


1. 序列的概念

序列是一种数据结构,它存储了一组有序的元素。这些元素可以是任何类型的对象,甚至是其他序列。在Python中,最常用的序列类型包括:

  • 字符串(String):由字符组成的序列,用于表示文本。
  • 列表(List):由任意类型的对象组成的可变序列。
  • 元组(Tuple):由任意类型的对象组成的不可变序列。

每个序列中的元素都有一个唯一的索引,可以通过索引访问特定的元素。序列的索引从0开始,正向索引从左到右依次增加,反向索引从右到左依次减少。

字符串(String)

字符串是字符的有序集合,用于表示文本信息。字符串使用单引号(')、双引号(")或三引号('''""")包围。字符串是不可变的,即创建后不能更改。

示例:

s = "Hello, World!"

列表(List)

列表是Python中最常用的数据结构之一,可以存储任意类型的元素。列表是可变的,可以在创建后修改其内容。列表使用方括号([])包围,元素之间用逗号分隔。

示例:

lst = [1, 2, 3, "Python", [5, 6]]

元组(Tuple)

元组与列表类似,但元组是不可变的,即一旦创建就不能修改其内容。元组使用圆括号(())包围,元素之间用逗号分隔。

示例:

tup = (1, 2, 3, "Python", (5, 6))

2. 标准类型操作符

Python提供了一些标准操作符,可以用于操作序列。这些操作符包括连接、重复、索引、切片和成员资格测试。

连接操作符(+)

连接操作符用于将两个序列连接成一个新的序列。

示例:

s1 = "Hello, "
s2 = "World!"
s3 = s1 + s2  # "Hello, World!"

lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst3 = lst1 + lst2  # [1, 2, 3, 4, 5, 6]

tup1 = (1, 2, 3)
tup2 = (4, 5, 6)
tup3 = tup1 + tup2  # (1, 2, 3, 4, 5, 6)

重复操作符(*)

重复操作符用于将序列重复指定的次数,生成一个新的序列。

示例:

s = "Hello"
s_repeated = s * 3  # "HelloHelloHello"

lst = [1, 2, 3]
lst_repeated = lst * 2  # [1, 2, 3, 1, 2, 3]

tup = (1, 2, 3)
tup_repeated = tup * 2  # (1, 2, 3, 1, 2, 3)

索引操作符([])

索引操作符用于访问序列中的单个元素。正向索引从0开始,反向索引从-1开始。

示例:

s = "Python"
print(s[0])  # "P"
print(s[-1]) # "n"

lst = [1, 2, 3, 4, 5]
print(lst[2])  # 3
print(lst[-2]) # 4

tup = (1, 2, 3, 4, 5)
print(tup[1])  # 2
print(tup[-3]) # 3

切片操作符([:])

切片操作符用于访问序列中的一部分元素,生成一个新的序列。切片的语法为 序列[开始:结束:步长]

示例:

s = "Hello, World!"
print(s[0:5])    # "Hello"
print(s[7:12])   # "World"
print(s[::-1])   # "!dlroW ,olleH" (反转字符串)

lst = [1, 2, 3, 4, 5, 6]
print(lst[1:4])  # [2, 3, 4]
print(lst[:3])   # [1, 2, 3]
print(lst[::2])  # [1, 3, 5]

tup = (1, 2, 3, 4, 5, 6)
print(tup[2:5])  # (3, 4, 5)
print(tup[::3])  # (1, 4)

成员操作符(in 和 not in)

成员操作符用于检查元素是否存在于序列中。

示例:

s = "Hello, World!"
print("H" in s)    # True
print("h" not in s) # True

lst = [1, 2, 3, 4, 5]
print(3 in lst)    # True
print(6 not in lst) # True

tup = (1, 2, 3, 4, 5)
print(2 in tup)    # True
print(7 not in tup) # True

3. 序列的切片操作

切片是从序列中提取子序列的操作。切片操作返回一个新的序列,不修改原序列。切片操作的语法为 序列[开始:结束:步长]。其中,开始结束为索引位置,步长表示元素间的间隔,默认为1。

基本切片

最简单的切片操作只包含开始和结束索引。

示例:

s = "Hello, World!"
print(s[0:5])  # "Hello"
print(s[7:12]) # "World"

在上述示例中,s[::2] 每隔一个字符提取一次,而 s[::-1] 以步长-1反向提取字符,实现字符串的反转。

省略索引

当省略开始或结束索引时,Python会使用默认值。省略开始索引表示从序列的起始位置开始,省略结束索引表示到序列的末尾。

示例:

s = "Hello, World!"
print(s[:5])  # "Hello"
print(s[7:])  # "World!"
print(s[:])   # "Hello, World!" (整个字符串)

在上述示例中,s[:5] 提取从起始位置到索引4的字符,s[7:] 提取从索引7到末尾的字符。

切片对象

切片对象是通过 slice() 函数创建的,用于表示切片操作。切片对象可以用于在任何支持切片的对象中应用相同的切片。

示例:

s = "Hello, World!"
slice_obj = slice(0, 5)
print(s[slice_obj])  # "Hello"

lst = [1, 2, 3, 4, 5]
print(lst[slice_obj]) # [1, 2, 3, 4, 5]

在上述示例中,slice_obj 表示从索引0到索引4的切片。这个切片对象可以应用于字符串和列表,结果分别为 "Hello" 和 [1, 2, 3, 4, 5]

4. 序列内建函数

Python提供了一些内建函数,用于操作和处理序列。这些函数包括:

  • len():返回序列的长度。
  • max():返回序列中的最大值。
  • min():返回序列中的最小值。
  • sum():返回序列中所有元素的和(适用于数字序列)。
  • sorted():返回序列的排序副本。
  • reversed():返回序列的反转迭代器。
  • enumerate():返回序列中的元素和索引。

len() 函数

len() 函数用于返回序列的长度,即序列中元素的个数。

示例:

s = "Hello, World!"
print(len(s))  # 13

lst = [1, 2, 3, 4, 5]
print(len(lst))  # 5

tup = (1, 2, 3, 4, 5)
print(len(tup))  # 5

在上述示例中,len() 函数分别返回字符串、列表和元组的长度。

max() 函数

max() 函数用于返回序列中的最大值。对于字符串,max() 函数返回字典序中最大的字符。

示例:

s = "Hello, World!"
print(max(s))  # "r"

lst = [1, 2, 3, 4, 5]
print(max(lst))  # 5

tup = (1, 2, 3, 4, 5)
print(max(tup))  # 5

在上述示例中,max() 函数分别返回字符串、列表和元组中的最大值。

min() 函数

min() 函数用于返回序列中的最小值。对于字符串,min() 函数返回字典序中最小的字符。

示例:

s = "Hello, World!"
print(min(s))  # " "

lst = [1, 2, 3, 4, 5]
print(min(lst))  # 1

tup = (1, 2, 3, 4, 5)
print(min(tup))  # 1

在上述示例中,min() 函数分别返回字符串、列表和元组中的最小值。

sum() 函数

sum() 函数用于返回数字序列中所有元素的和。对于非数字序列,sum() 函数会抛出错误。

示例:

lst = [1, 2, 3, 4, 5]
print(sum(lst))  # 15

tup = (1, 2, 3, 4, 5)
print(sum(tup))  # 15

在上述示例中,sum() 函数分别返回列表和元组中所有元素的和。

sorted() 函数

sorted() 函数返回序列的排序副本。对于字符串,sorted() 函数返回字符按字典序排序的新列表。

示例:

s = "Hello, World!"
print(sorted(s))  # [' ', '!', ',', 'H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r']

lst = [5, 3, 1, 4, 2]
print(sorted(lst))  # [1, 2, 3, 4, 5]

tup = (5, 3, 1, 4, 2)
print(sorted(tup))  # [1, 2, 3, 4, 5]

在上述示例中,sorted() 函数分别返回字符串、列表和元组的排序副本。

reversed() 函数

reversed() 函数返回序列的反转迭代器。

示例:

s = "Hello, World!"
print(''.join(reversed(s)))  # "!dlroW ,olleH"

lst = [1, 2, 3, 4, 5]
print(list(reversed(lst)))  # [5, 4, 3, 2, 1]

tup = (1, 2, 3, 4, 5)
print(list(reversed(tup)))  # [5, 4, 3, 2, 1]

在上述示例中,reversed() 函数分别返回字符串、列表和元组的反转迭代器,并通过 list()join() 方法将其转换为列表或字符串。

enumerate() 函数

enumerate() 函数返回序列中的元素和索引。

示例:

s = "Hello"
for index, char in enumerate(s):
    print(f"{index}: {char}")

lst = ["a", "b", "c", "d"]
for index, value in enumerate(lst):
    print(f"{index}: {value}")

在上述示例中,enumerate() 函数分别返回字符串和列表中的元素和索引。

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

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

相关文章

MySQL 8.0 安装、配置、启动、登录、连接、卸载教程

目录 前言1. 安装 MySQL 8.01.1 下载 MySQL 8.01.2 安装 MySQL 8.0 2. 配置 MySQL 8.02.1打开环境变量2.2新建变量 MYSQL_HOME2.3编辑 Path 变量 3. 启动MySQL 8.03.1验证安装与配置是否成功3.2初始化并注册MYSQL3.3 启动MYSQL服务 4.登录MySQL4.1修改账户默认密码4.2登录MYSQL…

6月11日 C++day6

#include <iostream>using namespace std; class Animal //讲解员 { public:Animal(){}virtual void perform(){cout << "" << endl;} }; class Lion:public Animal //狮子 { public:Lion(){}void perform(){Animal::perform();cout <<…

基于SSM+Jsp的交通事故档案管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

大模型高级 RAG 检索策略之混合检索

古人云&#xff1a;兼听则明&#xff0c;偏信则暗&#xff0c;意思是要同时听取各方面的意见&#xff0c;才能正确认识事物&#xff0c;只相信单方面的话&#xff0c;必然会犯片面性的错误。 在 RAG&#xff08;Retrieval Augmented Generation&#xff09;应用中也是如此&…

Generative AI原理本质、技术内核及工程实践之基于Vertex AI的大模型 (四)Vertex AI 如何将 LLM 提升到新水平

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

[论文笔记]Query Rewriting for Retrieval-Augmented Large Language Models

引言 今天带来论文Query Rewriting for Retrieval-Augmented Large Language Models的笔记。 本篇工作从查询重写的角度介绍了一种新的框架&#xff0c;即重写-检索-阅读&#xff0c;而不是以前的检索-阅读方式&#xff0c;用于检索增强的LLM。关注的是搜索查询本身的适应性&…

服饰进口清关流程及注意事项 | 国际贸易数字化平台 | 箱讯科技

随着全球化进程的不断推进&#xff0c;我国消费者对国外品牌服饰的需求日益增长&#xff0c;衣服进口业务也随之蓬勃发展。作为一名从事进口衣服行业的专业人士&#xff0c;掌握清关流程及注意事项至关重要。本文将为您详细解析衣服进口清关流程&#xff0c;并提供一些实用建议…

【CHIP】LTC2991 读取温度电压电流 调试实例

文章目录 0. ENV1. LTC2991 数据说明1. 数据计算公式2. 寄存器概述1. 管脚使能寄存器2. 芯片使能寄存器 2. 软件实现1. 概述2. 源码(部分)3. 参考log 0. ENV 软件系统&#xff1a;略 LTC2991&#xff1a;VCC3.3 温度&#xff1a;温控接v1-v2 / v2-v3 / … (双端采样)电压&#…

怎么找回Excel表格密码,两个方法,轻松解密

有时候&#xff0c;打开很久以前的工作表&#xff0c;想要进行编辑&#xff0c;结果工作表设置了工作表保护&#xff0c;需要输入密码来撤消工作表保护&#xff0c;然而&#xff0c;自己又忘记了保护工作表的密码&#xff0c;怎么办&#xff1f; 1、使用备份文件 如果您有文件…

龙迅LT9211D MIPIDSI/CSI桥接到2 PORT LVDS,支持 3840x2160 30Hz分辨率

龙迅LT9211D描述&#xff1a; LT9211D是一款高性能的MIPI DSI/CSI-2到双端口LVDS转换器。LT9211D反序列化输入的MIPI视频数据&#xff0c;解码数据包&#xff0c;并将格式化的视频数据流转换为AP和移动显示面板或摄像机之间的LVDS发射机输出。LT9211D支持最大12.5 dB输入均衡和…

for语句初识

情景导入 某校某年级某班某位男生很爱哭&#xff0c;“wa”、“wa”、“wa”声音经常不绝于耳&#xff0c;现在请你通过编程来模拟他的哭声&#xff0c;他每发出一次哭声&#xff0c;则你输出一行——一个“wa”&#xff1b; 他哭了2次&#xff0c;我们可以这样写&#xff1a; …

力扣每日一题 6/11

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 419.甲板上的战舰[中等] 题目&#xff1a; 给你一个大小为 m x n 的矩阵 b…

经典且完全免费的图像编辑处理软件比PS高级

一、简介 1、一款非常经典且完全免费的图像编辑处理软件&#xff0c;相比PS动辄1G的安装包&#xff0c;GIMP只有100 多兆&#xff0c;却包含了几乎所有常见的图片处理和平面设计相关功能&#xff0c;堪称PS替代品。 2、GIMP 几乎能实现与 PS 等同的功能&#xff0c;我们常使用…

【鸿蒙开发教程】HarmonyOS 模块关系梳理

HarmonyOS 梳理模块关系 刚开始开发的时候总是理不清鸿蒙中的模块类型和关系&#xff0c;今天就来梳理下鸿蒙中的模块类型 Module类型 Module按照使用场景可以分为两种类型&#xff1a; ●Ability类型的Module&#xff1a; 用于实现应用的功能和特性。每一个Ability类型的M…

抖音快手AI无人直播系统:教你快速搭建视频循环直播场景只需五部

AI无人直播是一种创新的直播方式&#xff0c;利用先进的技术手段实现自动直播&#xff0c;无需人工干预。这种直播方式具有全天候自动直播的能力&#xff0c;无需运营和监管即可吸引流量并转化为订单。商家门店对这种低成本高效果的方式非常欢迎。通过轻松进行直播销售&#xf…

【C语言】一篇带你高强度解析精通 字符串函数和内存函数 (万字总结大全,含思维导图)(建议收藏!!!)

【 库函数】——字符串函数和内存函数 目录 思维导图&#xff1a; 一&#xff1a;字符串函数 1.1&#xff1a;字符串常规函数 1.1.1&#xff1a;长度不受限制的字符串函数 1.1.1.1&#xff1a;strlen函数 1.1.1.2&#xff1a;strcpy函数 1.1.1.3&#xff1a;strcat函数 …

工业镜头孔径、分辨率与景深参数简析

工业镜头孔径、分辨率与景深参数简析 一、前言二、镜头孔径与光圈系数2.1孔径与相对孔径2.2数值孔径&#xff08;NA&#xff09;2.3光圈系数&#xff08;F/#&#xff09;2.4工作光圈系数&#xff08;&#xff08;F/#&#xff09;w&#xff09; 三、镜头分辨率3.1MTF与CTF3.1.1M…

干货分享!2024年Instagram营销必备插件

Instagram是营销人员常用的社交媒体平台&#xff0c;通过提升品牌知名度来推动业务增长。今天给大家分享一些超实用的Instagram营销插件&#xff0c;无论是下载图片视频&#xff0c;还是预先发布帖子&#xff0c;这些工具都可以是你的得力助手&#xff0c;让你的INS运营效率蹭蹭…

阿里云百炼开发AI大模型详解

AI项目功能设想描述文档 随着AI发展越来越迅速&#xff0c;各行各业都需考虑如何将AI结合到自己的产品中&#xff0c;目前国内大部分的AI问答网站&#xff0c;都是基于Open AI实现的&#xff0c;但是如何需要运用到企业产品中那我们考虑的因素就会比较多 将ChatGpt移植到企业中…

Activiti7 Maven笔记

通过maven完成BPMN的创建,定义流程,部署流程,完成流程等操作 代码整合创建maven项目添加log4j日志配置添加activiti配置文件创建数据库 activitijava类编写程序生成表如果代码运行,没有生成表,可能是没有读取到activiti的配置文件 Activiti数据表介绍类关系图工作流引擎创建默认…