第三讲|字符串、列表和栈

Python列表专题:使用列表实现栈 通过使用Python的列表实现栈,我们可以轻松地完成各种栈操作,栈的特性帮助我们解决了许多实际问题。本文展示了栈的基本操作、自定义代码实现、常见应用场景及性能分析。希望读者能够在实际项目中运用这些知识,提升编程能力。 阅读详情

今天考了两门,哇简直啦,全部是背诵的题目,受不了了我赶紧来继续我的Python吧
这一章呢我要将的呢是数据结构:字符串、列表、元组、栈、队列、字典和集合

字符串

字符创可谓是编程语言里面的大哥呀,也是我们经常使用的一种形式

创建字符串
在Python里面我们只要给字符串赋值就可以了
srt1 = "hello world"
str2 = "ABCDEFHHFHJ"

访问字符串里面的元素
在Python里面可以通过向访问数组一样通过下标来访问字符串里面的某一个具体的元素,也可以一次访问多个字符串


例如:

str1 = "hello word"
print("srt1=",str1)
print("str1[0]=",str1[0])
print("str1[0:5]=",str1[0:5])
print("str1[4:9]=",str1[4:9])

执行结果:

srt1= hello word
str1[0]= h
str1[0:5]= hello
str1[4:9]= o wor

修改字符串:        
修改字符串使用内置方法replace(old,new)来实现,此外还可以进行字符串的拼接
str1 = “i am li hua”
str2 = "i am a student"
str1 = str1 + str2
print("str1= ",str1")
str1 = str1.replace(str2,"hello ")
print("str1=",str1)

执行结果

str1=  i am li hua i am a student
str1= i am li hua hello 

字符串运算符
字符串可以进行拼接,剪切,复值,成员运算等

str1 = "Hello world!"
str2 = "Jack"
#字符串拼接
print('str1+str2:',str1+str2)
#字符串截取
print('str1[0:6]:',str1[0:6])
#字符串复制
print('str2*2:',str2*3)
#成员运算:判断一个字符串是否包含某成员
print('world in str1?','world' in str1)
print('word in str1?','word' in str1)

执行结果:

str1+str2: Hello world!Jack
str1[0:6]: Hello
str2*2: JackJackJack
world in str1? True
word in str1? False

字符串格式化输出:
注意这里的写法可能还有看不懂的人,少为解释一下:%d这是在字符串里面用例外的数来代替,代替的内容为%后面的东西
#格式化为十进制:%d
print('PI is approximately equal to %d (I)'%(3.1415926))
#格式化字符串:%s
print('PI is approximately equal to %s (II)'%(3.1415926))
#格式化浮点数字,可指定小数点后的精度,默认为6位小数:%f
print('PI is approximately equal to %f (III)'%(3.1415926))
#格式化浮点数字,指定n位小数:%.nf
print('PI is approximately equal to %.2f (IV)'%(3.1415926))
#用科学计数法格式化浮点数:%e
print('PI is approximately equal to %e (V)'%(3.1415926))
#格式化为十进制:%d
print('The road is about %d meters long (VI)'%(1234))
#格式化无符号八进制数:%d
print('The road is about %o meters long (VII)'%(1234))
#格式化无符号十六进制数:%x
print('The road is about %x meters long (VIII)'%(1234))

执行结果:

PI is approximately equal to 3 (I)
PI is approximately equal to 3.1415926 (II)
PI is approximately equal to 3.141593 (III)
PI is approximately equal to 3.14 (IV)
PI is approximately equal to 3.141593e+00 (V)
The road is about 1234 meters long (VI)
The road is about 1234 meters long (VII)
The road is about 4d2 meters long (VIII)

字符串内建函数
Python提供了40余种内建函数,下面介绍几种
str1 = " Hello world! Hello"
str2 = "Hello"
#返回字符串的长度:len(str)
print('str1的长度:',len(str1))
#对字符串进行分割:split(str),分割符为str,此处以空格进行分割
print('str1以空格分割的结果:',str1.split(' '))
#删除字符串字符串首尾的空格
print('str1删除首尾空格:',str1.strip())
#count(str2, beg>=0,end<=len(str1))
#返回 str2 在 str1 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str2出现的次
print('str2在str1中出现的次数:',str1.count(str2))
print('str2在str1中出现的次数(指定范围):',str1.count(str2,10,20))
#检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束
#如果是,返回 True,否则返回 False.
print('str1是否以 str2结尾:',str1.endswith(str2))
print('str1是否以 str2结尾(指定范围):',str1.endswith(str2,10,19))
#检测 str2是否包含在字符串str1中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内
#如果包含返回开始的索引值,否则返回-1
print('str1中是否包含str2:',str1.find(str2))
print('str1中是否包含str2(指定范围):',str1.find(str2,10,20))

执行结果:

str1的长度: 19
str1以空格分割的结果: ['', 'Hello', 'world!', 'Hello']
str1删除首尾空格: Hello world! Hello
str2在str1中出现的次数: 2
str2在str1中出现的次数(指定范围): 1
str1是否以 str2结尾: True
str1是否以 str2结尾(指定范围): True
str1中是否包含str2: 1
str1中是否包含str2(指定范围): 14

列表
Python的最重要的数据结构之一列表。列表使用[]方括号括起来,并且以;结束
#随意创建3个列表,同一个列表中可以存放任意基本数据类型
list1 = [3.14, 5.96, 1897, 2020, "China",3+4j];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["BeiJing", "ShangHai", "NanJing", "GuangZhou"];
list4 = []

如上所示,列表中的数据项可以是不同的数据类型,如 list1,同时包含浮点型、整型、
长整型、字符串和复数;也可以创建一个空列表,如 list4
访问列表中的元素
通过索引下标访问列表中的元素,可以一次访问一个或多个元素。

#通过索引下标访问列表中的单个元素
print("list1[2]: ",list1[2])
print("list2[2]: ",list2[2])
print("list3[2]: ",list3[2])
#通过索引下标一次访问多个元素
print("list1[0:2]:",list1[0:2])

执行结果:

list1[2]:  1897
list2[2]:  3
list3[2]:  NanJing
list1[0:2]: [3.14, 5.96]

更改列表中的元素

list1 = [3.14, 5.96, 1897, 2020, "China",3+4j];
print("before list1[3]: ",list1[4])
list1[4] = "Change"
print("after list1[3]: ",list1[4])

执行结果:

before list1[3]:  China
after list1[3]:  Change

删除列表中的元素
Python 提供三种删除列表中元素的方法:del、remove(obj)、clear(),分别用于删除列表中的元素和清空列表。
list1 = [3.14, 5.96, 1897, 2020, "China",3+4j];
print("Before the operation:",list1)
del list1[3]
list1.remove(3+4j)
print("After deleting the element:",list1)
list1.clear()
print("After the emptying of the list:",list1)

执行结果:

Before the operation: [3.14, 5.96, 1897, 2020, 'China', (3+4j)]
After deleting the element: [3.14, 5.96, 1897, 'China']
After the emptying of the list: []
向列表中添加新元素
有两个内建方法可以用于添加新元素:
1. append(object):添加新元素将新元素添加到列表末尾;
2. insert(index,object):插入新元素到指定索引位置
list1 = [3.14, 5.96, 1897, 2020, "China",3+4j];
print("before operation list1: ",list1)
list1.append("New Ele-I")
list1.insert(2, "New Ele-II")
print("after operation list1: ",list1)


执行结果:

before operation list1:  [3.14, 5.96, 1897, 2020, 'China', (3+4j)]
after operation list1:  [3.14, 5.96, 'New Ele-II', 1897, 2020, 'China', (3+4j), 'New Ele-I']

列表常用内建函数
上面介绍了关于列表的“增、删、改、查”基本操作,除此之外,Python 列表还有很多内
建函数和有趣的操作,接下来一一介绍。

list1 = [2012, 1949, 1897, 2050, 1945, 1949];
#求列表长度,即列表中元素的个数:len(obj)
print("The length of the list: ", len(list1))
#求列表中元素的最大值:max(list)
print("The largest element in the list: ", max(list1))
#求列表中元素的最小值:min(list)
print("The smallest element in the list: ", min(list1))
#统计某个元素在列表中出现的次数:list.count(obj)
print("The number of times 1949 appears: ", list1.count(1949))
#从列表中找出某个值第一个匹配项的索引位置:list.index(obj)
print("The index of the first location of 1949: ", list1.index(1949))
#复制一个已有的表:list.copy()
list2 = list1.copy()
print("list2:", list2)
#反转一个已有的表:list.reverse()
list1.reverse()
print("After reversing :", list1)

执行结果:

The length of the list:  6
The largest element in the list:  2050
The smallest element in the list:  1897
The number of times 1949 appears:  2
The index of the first location of 1949:  1
list2: [2012, 1949, 1897, 2050, 1945, 1949]
After reversing : [1949, 1945, 2050, 1897, 1949, 2012]

列表常用操作
为了高效的使用列表,Python 支持一些常用的操作:列表拼接、列表乘法、迭代、嵌套
等。

list1 = [1,2,3,4]
list2 = [5,6,"BeiJin",7,8]
#列表拼接
print("list1 + list2:",list1 + list2)
#列表乘法
print("list1*2:",list1*2)
#判断元素是否存在于列表中
print("3 in list1?",3 in list1)
print("100 in list1?",100 in list1)
#迭代
for element in list1:
print(element)
#列表嵌套
list3 = [list1, list2]
print("list3:", list3)

执行结果:

list1 + list2: [1, 2, 3, 4, 5, 6, 'BeiJin', 7, 8]
list1*2: [1, 2, 3, 4, 1, 2, 3, 4]
3 in list1? True
100 in list1? False
1 2 3 4
list3: [[1, 2, 3, 4], [5, 6, 'BeiJin', 7, 8]]

栈

在上面“列表”小节中,我们介绍了列表,其中列表有两个内建函数:
1. append(obj):添加元素到列表尾部;
2. pop():从列表尾部取出元素。
不难理解,通过 append(obj) 函数最后添加的元素,可以通过 pop() 函数最先取出来,也
就是“后进先出”,这种数据结构称为“栈”。利用列表的两个内建方法,很容易实现“栈”这
种数据结构。

#初始化一个栈
stack1 = [1, 2, 3, 4, 5 ]
#向栈中添加元素
stack1.append(123)
print("stack1:",stack1)
#从栈中删除一个元素,及删除的是最后一个元素
print("stack1.pop():",stack1.pop())

执行结果:

stack1: [1, 2, 3, 4, 5, 123]
stack1.pop(): 123

好了,就到这里了,有许多不足之处还请见谅

顺便附上我的GitHub:https://github.com/Booboochen,点进去了,别忘了star奥

第03课:字符串、列表和栈 经过前面章节的学习,我们了解了数字和运算符。本文将要引入一个另一个重要概念:数据结构,包括字符串、列表、元组、字典、栈、队列和集合。在正式介绍之前,先简要介绍一下数据结构的概念,读者可以选择跳过,不影响阅读后文。 数据结构 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计... 阅读详情

相关推荐

[代码开源]基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)实现与性能分析

本文详细介绍了基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)的实现与性能分析。通过代码开源,展示了如何从零搭建电力系统优化模型,解决配电网中的发电成本最小化问题。文章涵盖数据准备、模型实现细节、性能优化建议及常见问题解答,为电力系统研究者提供实用参考。

weixin_29103191的博客 709

Python中字符串的count()方法

语法: str1.count(str2,开始下标, 结束下标) 作用: 统计并返回str1中str2出现的次数,没有就返回0: 计算时,由str1中开始下标的位置开始,一直到str1中结束下标位置前结束,在此范围内,统计str2出现的次数。 注意:此方法中的开始下标以及结束下标可以越界,当开始下标的值小于第一个字符的下标时,表示从第一个字符开始,结束下标同理。 示例: print('abcla...

weixin_43327425的博客 6383

保姆级教学,教你在vscode和cursor上调试matlab!!!

保姆级教你如何在vscode或者cursor上面调试matlab

yang_upup的博客 2083

python常用函数总结(一)

一、输入输出函数 1、print()函数 #输出指定的内容 print('hello world') #可以同时输出多个字符串,用逗号‘,’隔开 print('hello','how','are') #可以进行计算并输出结果;若对输出结果加上引号'',则不能进行计算,直接输出 print(200+300) print('200+300') #使用‘+’将字符串连接,且不产生空格 pri...

wyh_wen 556

adb 通信协议分析以及实现 (三) (Adb 网络通信部分解析)

这篇文章说下adb 和adb 服务进程之间通信的socket 协议。  adb 服务进程启动之后,会监视本地的5037 端口,使用的是TCP 协议,所以adb 发送的命令其实就是往本地的5037 端口发送数据,做过网络编程的都知道,本机可以用127.0.0.1 ip地址。 有了ip 地址和端口号socket 通信就没问题 1)  命令发送方式      

inforecovvery的博客 2870

Python 爬虫实战:深入闲鱼平台,抓取二手好物价格波动数据

本文介绍了如何利用Python爬虫抓取闲鱼(Xianyu)二手交易平台的商品价格数据并分析其波动趋势。通过requests和BeautifulSoup库实现网页数据抓取与解析,使用pandas进行数据清洗和存储,最后借助matplotlib可视化价格波动情况。文章详细展示了从网页结构分析、数据采集到波动率计算和趋势可视化的完整流程,并建议通过定时任务实现持续数据更新。该项目能为二手市场交易者提供价格参考,帮助优化买卖决策。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3376

给你两个字符串str1,str2,找出str2在str1中的位置

如题 题目参考链接: http://blog.csdn.net/hxz_qlh/article/details/14110221 代码来自非原创 1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 char *strstring(cha...

weixin_33686714的博客 1429

AI Agent Harness与SCADA系统集成

简单来说,AI Agent Harness是Industrial AI Agent的“中央调度室+装备库+知识库+安全网”把不同技术栈、不同部署环境(云/边/端)、不同功能(感知、推理、决策、执行、验证)的“零散Agent”组装成具备特定工业场景能力的Agent Team(如聚合反应根因诊断Agent Team);管理Agent Team的生命周期(创建、初始化、调度、监控、销毁);提供统一的工业多工具调用接口(对接SCADA、MES、PLC、DCS、巡检机器人、数字孪生平台等);内置。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 355

Python 笔记—— string.count()

参考网页:http://www.tutorialspoint.com/python/pdf/string_count.pdf

积沙成塔 3415

第三节:Vben Admin登录对接后端login接口

上一节,我们梳理的Vben Admin登录功能接口的逻辑,本节开始正式开启后端的开发后端我们采用Python的Flask项目,Flask-SQLAlchemy管理数据库模型,Flask-Migrate进行模型迁移。参考版本如下:Flask3.0.23.1.1本节,我们已经开启的后端的开发,因为是主要介绍Vben Admin的登录逻辑,所以Flask开发这里只截取了部分主要代码。

cuiwin的专栏 4191

EML 全面实践指南:把 SAP RAP 业务对象玩出工程化的稳定与优雅

本文面向掌握ABAP基础、正在实施RAP的开发者,深入讲解EML(Entity Manipulation Language)的核心用法。文章围绕READ ENTITIES、MODIFY ENTITIES、COMMIT ENTITIES三大语句,详细解析其语义、类型体系、事务机制及工程实践。重点内容包括:字段裁剪、派生类型、草稿控制、批量更新、事务缓冲与保存序列等关键技术点,并配合真实案例代码。旨在帮助开发者在SAP ABAP On-Premise和BTP环境中构建可维护、可演进的业务对象访问层,同时避免常见

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 329

数据结构--栈、队列、串

数据结构–栈和队列 文章目录数据结构--栈和队列栈和队列栈栈的表示和实现栈与递归的实现队列 栈和队列 从数据结构的角度看,栈和队列也是线性表。 栈 栈(stack)是限定仅在表尾进行插入和删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶,相应地,表头端称为栈底。不含元素的空表称为空栈。 栈又被称为后进先出(last in first out)的线性表(简称LIFO结构)。 栈的表...

uncle_lemo的博客 1292

【Godot】【工程】中文字体与多语言(缺字/体积/打包:一次性配置到位)

本文介绍了Godot游戏开发中的中文字体配置与多语言支持方案。主要内容包括:1)中文字体的全局与局部设置;2)使用子集化技术减小字体体积;3)多语言资源管理及翻译系统实现;4)语言切换机制与控件刷新方法;5)字体回退策略优化显示效果;6)打包优化建议。文章提供了从字体导入到多语言实现的完整解决方案,帮助开发者系统性解决中文显示和多语言支持问题,同时优化资源体积和性能表现。配套案例可供学习参考。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 598

如何利用Python列表实现栈和队列

在Python中,列表是一种非常灵活的数据结构,可以用来实现多种数据结构,比如栈和队列。今天我们先来看看如何用列表实现栈。

zhang120529的博客 1111

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

每日一课 | 字符串、列表和栈

03.字符串、列表和栈大家好,我是小C,上期给大家分享——数字和运算符本期分享内容:字符串、列表和栈本期小C邀请的是应书澜(资深工程师)为我们分享《Python 开发 14 天快速入门》专...

sinat_32849897的博客 286

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python全栈开发《65.字符串与列表之间的转换》

目录1.字符串转列表的函数:split2.列表转字符串的函数:join3.代码1.字符串转列表的函数:split1.1split的功能将字符串以一定规则切割转成列表。1.2split的用法string:是需要被转换成列表的字符串。sep:是一个符号。split将按照这个符号对字符串进行切割。如果不填写(sep参数默认是个空格),会把当前字符串整个放入一个列表中。如果字符串中有空格,且不填写sep这...

清菡的博客 1216

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python中字符串和列表之间的转换

python内置了list() 和str()强制转换类型的方法,但是在实际的应用中,我们并不能直接就使用这俩个方法进行字符串和列表之间的转换,还需要借助 split() 和join()方法 1、字符串转列表 s = 'hello world hello kitty' 已知字符串s,想把这个字符串转换成list: print(list(s)) #这种方法也可以转换,但是往往不是我们想要的 result = s.split(' ',2) #['hello', 'world', 'hello kitt

xiaodaimu00的博客 2万+
上一篇: 第二讲|Python数字类型和运算符
下一篇: Go 语言笔记
区小升
博客等级 码龄8年 68粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值