Python•元组集合字符串

ʕ⸝⸝⸝˙Ⱉ˙ʔ ♡

  • 元组🛥️
    • 创建
    • 访问
    • 修改
    • 解包
    • 其他操作
      • 比较的依据
  • 集合🛸
    • 创建
    • 添加和删除
    • 其他操作
  • 字符串🪂
    • 创建
    • 索引和切片
    • 基本操作
      • 连接
        • 加号
        • join()
      • 重复
      • 查找
        • in 关键字
        • index()
        • find()
        • startswith()
        • endswith()
      • ​​替换
      • ​​分割
      • ​​大小写
      • 删除
  • 能量站😚

元组🛥️

Python中的元组(tuple)是一种不可变的序列类型,用于存储一组有序的元素。元组中的元素可以是不同类型的数据,如整数点数、字符串、列表、字典等。元组使用圆括号()包围,元素之间用逗号,分隔。

创建

🛥️可以使用圆括号创建元组,也可以省略圆括号,只使用逗号分隔元素。

# 使用圆括号创建元组
t1 = (1, 2, 3, 4, 5)# 省略圆括号创建元组
t2 = 1, 2, 3, 4, 5print(t1)  # 输出: (1, 2, 3, 4, 5)
print(t2)  # 输出: (1, 2, 3, 4, 5)

运行截图:
在这里插入图片描述

🛥️当元组中只有一个元素时,需要在元素后面加逗号,否则会被当作普通变量而非元组。

# 创建只有一个元素的元组
t3 = (42,)
print(type(t3))  # 输出: <class 'tuple'># 不加逗号,会被当作整数
t4 = (42)
print(type(t4))  # 输出: <class 'int'>

运行截图:
在这里插入图片描述

访问

可以使用下标索引访问元组中的元素,下标从0开始。还可以使用切片操作获取元组的子序列。切片相关知识可以看Python•列表哦~

t = (0, 1, 2, 3, 4, 5)# 访问第一个元素
first_element = t[0]
print(first_element)  # 输出: 0# 访问最后一个元素
last_element = t[-1]
print(last_element)  # 输出: 5# 切片操作
sub_tuple = t[1:4]
print(sub_tuple)  # 输出: (1, 2, 3)

运行截图:
在这里插入图片描述

修改

元组是不可变的,这意味着不能修改元组中的元素。但是,如果元组中包含可变对象(如列表),那么可以修改这些可变对象的内容。此外,可以将元组与其他元组连接,创建一个新的元组。

t1 = (1, 2, 3)
t2 = (4, 5, 6)# 连接两个元组
t3 = t1 + t2
print(t3)  # 输出: (1, 2, 3, 4, 5, 6)# 修改元组中的可变对象
t = (1, 2, [3, 4])
t[2][0] = 99
print(t)  # 输出: (1, 2, [99, 4])

运行截图:
在这里插入图片描述

解包

元组解包是将元组中的元素分配给多个变量的过程。解包时,变量的数量必须与元组中的元素数量相等
🛥️变量的数量必须与元组中的元素数量相等:

t = (1, 2, 3)
a, b, c = t
print(a)  # 输出: 1
print(b)  # 输出: 2
print(c)  # 输出: 3

运行截图:
在这里插入图片描述

🛥️还可以使用星号*来解包元组中的一部分元素(只能有一个用星号*):

t = (1, 2, 3, 4, 5)
a, *b, c = t
print(a)  # 输出: 1
print(b)  # 输出: [2, 3, 4]
print(c)  # 输出: 5

运行截图:
在这里插入图片描述

其他操作

元组支持一些其他操作,如计算长度、连接、重复等。这些操作与列表类似,但请注意,元组是不可变的,因此无法修改其内容。

t1 = (1, 2, 3)
t2 = (4, 5, 6)# 计算元组长度
length = len(t1)
print(length)  # 输出: 3# 连接两个元组
t3 = t1 + t2
print(t3)  # 输出: (1, 2, 3, 4, 5, 6)# 重复元组元素
t4 = t1 * 3
print(t4)  # 输出: (1, 2, 3, 1, 2, 3, 1, 2, 3)# 元组比较
print(t1 < t2)  # 输出: True# 元组索引
print(t1[1])  # 输出: 2# 元组切片
print(t1[1:3])  # 输出: (2, 3)

运行截图:
因为 1 < 4,所以t1 被认为小于 t2
在这里插入图片描述

比较的依据

​​逐元素比较​​:

  1. Python首先比较两个元组的第一个元素。
  2. 如果第一个元素不同,则根据这两个元素的大小关系确定整个元组的大小关系。
    如果第一个元素相同,则继续比较第二个元素,依此类推。

​​长度比较​​:
如果所有对应的元素都相同,但一个元组比另一个元组长,则较短的元组被认为是“小于”较长的元组。

🛥️示例一:

t1 = (1, 2, 4)
t2 = (1, 1, 6)print(t1 < t2)  # 输出: False

运行截图:
因为 2 > 1,所以t1 被认为大于 t2,即t1 < t2的结果是False
在这里插入图片描述

🛥️示例二:

t1 = (1, 2)
t2 = (1, 2, 0)print(t1 < t2)  # 输出: True

运行截图:
如果前面的所有对应元素都相同,但一个元组更长,那么较短的元组被认为是“小于”较长的元组。
在这里插入图片描述

集合🛸

Python中的集合(Set)是一种内建的数据类型,用于存储不重复的元素。

创建

可以使用大括号 {} 或者 set() 函数来创建集合。需要注意的是,空的大括号 {} 用于创建空字典,而不是空集合。要创建空集合,请务必使用 set() 函数。

# 使用大括号创建集合
my_set = {1, 2, 3, 4, 5}
print(my_set)  # 输出: {1, 2, 3, 4, 5}# 使用 set() 函数创建集合
another_set = set([1, 2, 3, 4, 5])
print(another_set)  # 输出: {1, 2, 3, 4, 5}# 创建空集合
empty_set = set()
print(empty_set)  # 输出: set()

运行截图:
在这里插入图片描述

添加和删除

使用 add() 方法可以向集合添加元素,而 remove() 方法可以从集合中删除元素。

my_set = {1, 2, 3}
my_set.add(4)  # 添加元素 4
print(my_set)  # 输出: {1, 2, 3, 4}my_set.remove(2)  # 删除元素 2
print(my_set)  # 输出: {1, 3, 4}

运行截图:
在这里插入图片描述

其他操作

集合还具有许多其他操作,有个大概印象就行。

my_set = {1, 2, 3}
my_set.add(4)  # 添加元素 4
print(my_set)  # 输出: {1, 2, 3, 4}
set1 = {1, 2, 3}
set2 = {3, 4, 5}# 并集
print(set1 | set2)  # 输出: {1, 2, 3, 4, 5}
print(set1.union(set2))  # 输出: {1, 2, 3, 4, 5}# 交集
print(set1 & set2)  # 输出: {3}
print(set1.intersection(set2))  # 输出: {3}# 差集
print(set1 - set2)  # 输出: {1, 2}
print(set1.difference(set2))  # 输出: {1, 2}# 对称差集
print(set1 ^ set2)  # 输出: {1, 2, 4, 5}
print(set1.symmetric_difference(set2))  # 输出: {1, 2, 4, 5}# 添加元素到集合
set1.update(set2)  # 等价于 set1 |= set2
print(set1)  # 输出: {1, 2, 3, 4, 5}# 删除集合中的所有元素
set1.clear()
print(set1)  # 输出: set()# 是否为子集
print(set2.issubset(set1))  # 输出: False

运行截图:
在这里插入图片描述

字符串🪂

Python中的字符串(String)是一种基本的数据类型,用于表示文本信息。字符串是由字符组成的序列,可以包含字母、数字、标点符号以及特殊字符。在Python中,字符串是不可变的,这意味着一旦创建了一个字符串,就不能修改它的内容。尽管如此,你仍然可以通过创建新的字符串来实现对字符串的修改。

创建

在Python中,可以使用单引号(')、双引号(")或三引号('''""")来创建字符串。

# 使用单引号创建字符串
s1 = 'Hello, World!'# 使用双引号创建字符串
s2 = "Hello, World!"# 使用三引号创建多行字符串
s3 = '''这是一个
多行字符串
示例'''s4 = """这也是一个
多行字符串
示例"""print(s1)  
print(s2)  
print(s3)  
print(s4)  

运行截图:
在这里插入图片描述

索引和切片

🪂字符串中的每个字符都有一个索引,索引从0开始。可以使用索引来访问字符串中的单个字符。

s = 'Hello'
print(s[0])  # 输出: H
print(s[4])  # 输出: o

运行截图:
在这里插入图片描述

🪂还可以使用切片来访问字符串中的一部分字符。切片操作使用冒号(:)分隔起始索引和结束索引。
切片是[开始:结束:步长],最终不包括结束

s = 'Hello, World!'
print(s[0:5])  # 输出: Hello
print(s[7:12]) # 输出: World
print(s[0:11:2])  # 输出: Hlo ol

运行截图:
在这里插入图片描述

基本操作

连接

加号

使用加号(+)来连接两个或多个字符串。

s1 = 'Hello'
s2 = 'World'
s3 = s1 + ', ' + s2 + '!'
print(s3)  # 输出: Hello, World!

运行截图:
在这里插入图片描述

join()

拼接字符串还有一种方法,那就是用join()方法。当使用这个函数时,要指出需要拼接哪些字符串,另外如果需要,还可以指定在各个字符串拼接处插入什么样的字符。

# 定义一个字符串列表
words = ['你', '要', '开', '心', '哦']# 使用♡作为分隔符连接列表中的元素
sentence = '♡'.join(words)
print(sentence)
# 输出: 你♡要♡开♡心♡哦

运行截图:
在这里插入图片描述

重复

可以使用星号(*)来重复一个字符串多次。

s = 'Hi'
print(s * 3)  # 输出: HiHiHi

运行截图:
在这里插入图片描述

查找

in 关键字

关键字in可以判断正在检查的字符串是否包含特定子串。

a = "我爱你"
if "你" in a:print("我找到你了♡")

运行截图:
在这里插入图片描述

index()

关键字in只能判断正在检查的字符串是否包含特定子串,并不能指明子串的具体位置。如果要知道具体位置,就要用到index()方法。注意,在调用index()方法之前,我们先用关键字in检查这个长字符串是否包含子串。这样做的原因是,在调用index()方法时,如果字符串中没有要查找的内容,系统就会返回一条错误消息,而先用关键字in来检查则可以避免这种情况。

a = "我爱你"
if "你" in a:print(f"我找到你了♡,虽然你有时候有点{a.index("")}")

运行截图:
在这里插入图片描述

find()

find() 方法用于查找子字符串在字符串中的位置,找到就返回要查找的子字符串的第一个字符所在的位置,如果找不到则返回 -1

s = 'Hello, World!'
print(s.find('World'))  # 输出: 7

运行截图:
,后还有一个空格哦~
在这里插入图片描述

startswith()

startswith() 方法用于判断字符串是否以指定的前缀开始。如果字符串以指定前缀开始,则返回 True,否则返回 False

🪂基本语法:

str.startswith(prefix[, start[, end]])

prefix:要检查的前缀,可以是一个字符串或元组。
start(可选):开始检查的位置,默认为 0
end(可选):结束检查的位置,默认为字符串的长度。

🪂示例:

text = "Hello, World!"# 检查是否以 "Hello" 开头
print(text.startswith("Hello"))  # 输出: True# 检查是否以 "World" 开头
print(text.startswith("World"))  # 输出: False# 指定开始和结束位置
print(text.startswith("World", 7))  # 输出: True
print(text.startswith("o", 4, 6))   # 输出: True# 使用元组作为前缀
prefixes = ("Hi", "Hello", "Hey")
print(text.startswith(prefixes))  # 输出: True

运行截图:
在这里插入图片描述

endswith()

endswith() 方法用于判断字符串是否以指定的后缀结尾。如果字符串以指定后缀结尾,则返回 True,否则返回 False

🪂基本语法:

str.endswith(suffix[, start[, end]])

suffix:要检查的前缀,可以是一个字符串或元组。
start(可选):开始检查的位置,默认为 0
end(可选):结束检查的位置,默认为字符串的长度。

🪂示例:

text = "Hello, World!"# 检查是否以 "World!" 结尾
print(text.endswith("World!"))  # 输出: True# 检查是否以 "Hello" 结尾
print(text.endswith("Hello"))   # 输出: False# 指定开始和结束位置
print(text.endswith("o!", 5, 7))  # 输出: False
print(text.endswith("Hello", 0, 5))  # 输出: True# 使用元组作为后缀
suffixes = (".txt", ".csv", "!") 
print(text.endswith(suffixes))  # 输出: True

运行截图:
在这里插入图片描述

​​替换

replace() 方法用于替换字符串中的子字符串。

s = 'Hello, World!'
print(s.replace('World', 'Python'))  # 输出: Hello, Python!

运行截图:
在这里插入图片描述

​​分割

split() 方法用于根据指定的分隔符将字符串分割成多个部分。

🪂基本语法:

str.split(sep=None, maxsplit=-1)

​​sep​​(可选):指定用于分割字符串的分隔符。如果未提供,默认使用任何空白字符(如空格、制表符 \t、换行符\n 等)作为分隔符。

​​maxsplit​​(可选):指定分割的最大次数。如果提供了该参数,字符串将被分割成最多 maxsplit + 1 个子字符串。默认值为 -1,表示不限制分割次数。不限制分割次数时,split() 方法会根据分隔符出现的次数尽可能多地进行分割​​。
这个方法会丢掉分解标记,比如print(s.split(',banana'))会丢掉,banana

🪂示例:

s = 'apple,banana,orange'
print(s.split(','))  # 输出: ['apple', 'banana', 'orange']

运行截图:
在这里插入图片描述

​​大小写

upper()lower() 方法分别用于将字符串转换为大写和小写。

s = 'Hello, World!'
print(s.upper())  # 输出: HELLO, WORLD!
print(s.lower())  # 输出: hello, world!

运行截图:
在这里插入图片描述

删除

strip() 方法是 Python 字符串对象的内置方法,用于移除字符串两端的指定字符(默认为移除空白字符)。该方法不会修改原始字符串,而是返回一个新的处理后的字符串,因为在 Python 中字符串是不可变的。注意,strip() 方法不会移除字符串中间的字符。如果字符串两端根本没有要移除的字符,那什么也不会删除。

s = '   Hello, World!   '
print(s.strip())  # 输出: Hello, World!

运行截图:
在这里插入图片描述

🪂基本语法:

str.strip([chars])

​​chars​​(可选):指定要移除的字符集合。如果未提供,默认移除字符串两端的所有空白字符(包括空格 ' '、制表符 '\t'、换行符 ' ' 等)。chars 参数可以包含多个不同的字符,strip() 会依次移除这些字符。

🪂示例:

a = "♡可以也喜欢我吗?♡"
clean_text = a.strip('♡')
print(clean_text)  # 输出: "可以也喜欢我吗?"b = "--♡-呐!我的♡,收好啦--♡-"
clean_text = b.strip('-♡')
print(clean_text)  # 输出: "呐!我的♡,收好啦"

运行截图:
在这里插入图片描述

能量站😚

这样的日子,我是过不够的。而当我终于意识到我愿意过这样的日子,已是多年以后。
请添加图片描述

❤️进步ing❤️

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

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

相关文章

​​信息系统项目管理师-项目整合管理 知识点总结与例题分析​​

​​一、项目整合管理概述​​ ​​1. 定义与重要性​​ 项目整合管理是项目管理知识领域中的核心过程,它协调所有其他知识领域的过程和活动,确保项目各要素有效整合。其核心目标是: ​​统一项目目标​​:确保各要素服务于共同目标​​协调冲突​​:解决项目执行中的各…

『uniapp』onThemeChange监听主题样式,动态主题不正确生效,样式被覆盖的坑

目录 问题示例代码解决思路1&#xff08;缺点影响显示效果有延迟&#xff09;解决思路2——通过路由刷新页面&#xff08;缺点只适用于部分网页&#xff09;解决思路3——vuex&#xff08;没学会~&#xff09;总结 欢迎关注 『uniapp』 专栏&#xff0c;持续更新中 欢迎关注 『…

LeetCode 高频 SQL 50 题(基础版)【题解】合集

点击下方标题可跳转至对应部分&#xff1a; LeetCode 高频 SQL 50 题&#xff08;基础版&#xff09;之 【查询】部分 LeetCode 高频 SQL 50 题&#xff08;基础版&#xff09;之 【连接】部分 上 LeetCode 高频 SQL 50 题&#xff08;基础版&#xff09;之 【连接】部分 下…

Jenkins 全面深入学习目录

Jenkins 全面深入学习目录 第一部分&#xff1a;Jenkins 基础入门 Jenkins 概述 持续集成/持续交付(CI/CD)概念Jenkins 的历史与发展Jenkins 与其他 CI/CD 工具的比较 Jenkins 安装与配置 系统要求与环境准备不同操作系统下的安装方法初始配置与安全设置插件管理系统 Jenkins…

安装laravel11和laravel12的一些报错问题解决

前言 今天在安装laravel的过程中遇到一些报错问题&#xff0c;记录一下。 laravel 12 Root composer.json requires laravel/tinker ^2.10.1, found laravel/tinker[2.x-dev] but it does not match your minimum-stability laravel/framework[v12.0.0, ..., v12.15.0] requ…

Oracle21cR3之客户端安装错误及处理方法

文章目录 Oracle21cR3客户端安装1. 下载2. 安装解压到指定位置&#xff0c;如下&#xff1a;2. 安装 3. 常见错误1. 无法将 JINSHENGYUAN\jinshengyuan 安装用户添加到 %2% 组。1. 问题原因分析2. 处理方法 Oracle21cR3客户端安装 1. 下载 官网下载 2. 安装 解压到指定位置…

web3 资讯网址

1. 新闻 币圈导航| 区块链导航| WEB3导航 | 聚合币圈交易所、行情工具、空投资讯、DeFi入口及行业动态&#xff0c;一站式区块链资源门户网站 2.github位置 https://github.com/itgoyo/awesome-crypto

【C++】简单商品价格计算程序练习

相信你是最棒哒!!! 文章目录 一、题目代码 二、题目解析 1.解析版 2.简洁版 总结 一、题目代码 构建一个类book,其中含有两个私有数据成员qu和price,将price初始化为qu的10倍,建立一个有5个元素的数组对象,将qu初始化为6~10。要求通过对象指针访问对象数组,按相反的顺序…

现代数据工程实践:基于Dagster的ETL架构设计与实现

在当今数据驱动的世界中&#xff0c;有效的数据处理流程至关重要。本文将带您通过一个完整的教程&#xff0c;学习如何使用Dagster构建一个功能强大的ETL(提取、转换、加载)管道。无论您是数据工程师、分析师还是对数据流水线感兴趣的技术爱好者&#xff0c;本教程都将为您提供…

golang-linux环境配置

下载源码包 &#xff1a;All releases - The Go Programming Language 解压文件 sudo tar -zxvf go1.24.4.linux-amd64.tar.gz -C /usr/local/ 配置环境 vim ~/.bashrc 在配置文件最后加上下面三行&#xff1a; # 设置GO语言的路径 export GOROOT/usr/local/go # 当前go…

【模拟 贪心】B4207 [常州市赛 2021] 战士|普及+

B4207 [常州市赛 2021] 战士 题目背景 搬运自 http://czoj.com.cn/p/443。数据为民间数据。 题目描述 小 X \text X X 在玩一款操控战士和怪物战斗的游戏。战士初始生命值为 iH \text{iH} iH 、初始攻击力为 iA \text{iA} iA 。怪物只有一个&#xff0c;初始生命值为 H…

37-Oracle 23 ai Shrink Tablespace(一键收缩表空间)

小伙伴们有没有经历过&#xff0c;超大表和超大数据的导入后&#xff0c;数据被删除了&#xff0c;然而空间迟迟不释放&#xff0c;存储添置又跟不上&#xff0c;业务空间告警的时候。收缩就很必须了&#xff0c;然而收缩需谨慎&#xff0c;数据大过天。DBMS_SPACE.SHRINK_TABL…

我自己动手写了一个MySQL自动化备份脚本,基于docker

MySQL自动化备份Docker方案 该方案仅需通过 Docker Compose 就能轻松完成部署。你可以自由配置数据库连接信息&#xff0c;无论是远程数据库&#xff0c;还是本地数据库&#xff0c;都能实现无缝对接。在备份频率设置上&#xff0c;支持按固定秒数间隔执行备份任务&#xff0c…

leetcode23-合并K个升序链表

leetcode 23 思路 遍历所有链表收集节点&#xff1a;将每个链表的节点断开其 next 指针后存入数组对数组进行排序&#xff1a;使用 JavaScript 的内置 sort 方法对节点数组按值排序重新连接排序后的节点&#xff1a;遍历排序后的数组&#xff0c;依次连接每个节点形成新链表…

(十六)GRU 与 LSTM 的门控奥秘:长期依赖捕捉中的遗忘 - 更新机制对比

1 长期依赖捕捉能力的核心差异 1.1 信息传递路径&#xff1a;细胞状态 vs 单一隐藏状态 LSTM的“信息高速公路”机制 LSTM通过独立的细胞状态&#xff08;Cell State&#xff09; 传递长期信息&#xff0c;该状态可视为“直接通路”&#xff0c;允许信息跨越多个时间步而不被中…

HTTP 请求报文 方法

在 HTTP 请求报文 中&#xff0c;方法&#xff08;Method&#xff09; 是用来说明客户端希望对服务器资源执行的操作。它出现在 HTTP 报文的第一行&#xff0c;称为 请求行&#xff0c;格式如下&#xff1a; METHOD Request-URI HTTP-Version例如&#xff1a; GET /index.h…

【深度解析】Java高级并发模式与实践:从ThreadLocal到无锁编程,全面避坑指南!

&#x1f50d; 一、ThreadLocal&#xff1a;线程隔离的利器与内存泄露陷阱 底层原理揭秘&#xff1a; 每个线程内部维护ThreadLocalMap&#xff0c;Key为弱引用的ThreadLocal对象&#xff0c;Value为存储的值。这种设计导致了经典内存泄露场景&#xff1a; // 典型应用&#…

使用存储型 XSS 窃取 cookie 并发送到你控制的服务器

&#x1f9ea; 第一步&#xff1a;准备监听服务接收 cookie 在你的本机&#xff08;非容器&#xff09;或 DVWA 所在主机运行以下 Python 监听代码&#xff0c;用于接收窃取的 cookie&#xff1a; 启动 HTTP 接收服务 # 在本机终端运行&#xff0c;监听 8081 端口&#xff0…

WebDebugX和多工具组合的移动端调试流程构建:一个混合App项目的实践案例

前段时间参与了一个跨平台的医疗服务 App 项目&#xff0c;整体架构采用 Flutter 封装原生模块&#xff0c;部分功能模块嵌套 WebView 加载 H5 页面。开发过程中我们频繁遇到 Web 页面在移动端表现异常的问题&#xff0c;比如样式错乱、请求失败、性能延迟等&#xff0c;而这些…

图形编辑器基于Paper.js教程29:基于图层的所有矢量图元的填充规则实现

背景 在lightburn中&#xff0c;对于填充图层&#xff0c;有这样一个隐藏的逻辑&#xff0c;那就是&#xff0c;在加工时&#xff0c;填充规则是以填充图层的所有元素进行计算的&#xff0c;什么意思那&#xff1f; 如果你在填充图层中画了两个图形&#xff0c;一个圆&#xf…