Zero-py系列:字符串处理概览(超详细+全面)

Zero-py系列:字符串处理概览(超详细+全面)🎉🎉🎉



什么是字符串 ✨✨✨

Python 中,由引号引起的都是字符串,可以是 单引号,也可以是 双引号


字符串处理 ✨✨✨

1.字符串大小写转化

  • 首字母大写

title() 方法将每个单词首字母大写,对于有空格的字符串,空格后的首字母也大写

str1 = "abc def"
print(str1.title())      # Abc Def

str2 = "abcdef"
print(str2.title())     # Abcdef
  • 全大写和全小写
str1 = "Abc dEF"
print(str1.upper())      # ABC DEF
print(str1.lower())     # abc def

2.字符串中使用转义字符

name = "name:\n\txiao bai"
print(name)
# 输出:name:
#          xiao bai

3.字符串中使用变量

使用 “f字符串” 在字符串中使用变量, 也可对变量进行一些处理

first_name = 'xiao'
last_name = 'bai'
name = f"{first_name} {last_name}"
print(name)     # 输出:xiao bai

name = f"{first_name.title()} {last_name.title()}"
print(name)     # 输出:Xiao Bai

print(f"my name is {first_name.title()} {last_name}")   # my name is Xiao bai

3.删除空白

🚨 使用 rstrip() 方法 只能临时删除空白,想要永久删除空白,要将结果关联到原来的变量
🚨注意:这里是为了直观看见效果输出加上引号,原本输出不带引号的

txt = ' blank '
print(txt)              # ' blank '
# 临时删除空白
print(txt.rstrip())     # ' blank'
print(txt.lstrip())     # 'blank '
print(txt.strip())      # 'blank'
# 这里 txt 内容没有变化
print(txt)          # ' blank '

# 永久删除空白
txt = txt.strip()
print(txt)          # 'blank'

4.删除前缀

  • removeprefix() 方法

这里和删除空白一样,保持原始字符不变,想要永久删除重新赋给原始变量即可

url = 'http://api.openweathermap.org/data/2.5'
url.removeprefix('http://')
print(url)      # http://api.openweathermap.org/data/2.5

url = url.removeprefix('http://')
print(url)      # api.openweathermap.org/data/2.5

5.字符串的10种拼接方式 📌📌📌

由于内容过长,请移步:字符串的10种拼接方式🥰🥰🥰
该文章最后可以跳转回来本文章


6.字符串中元素和子串查找

  • find() 方法

语法
字符串序列.find(子串,开始位置的下标, 结束位置的下标), 查找子串第一次出现的位置

str = 'xiao and bai and XB'
# 找到就返回字串开始时的下标
print(str.find('and'))      # 5
print(str.find('and', 10, 18))       # 13

# 没找到则返回 -1
print(str.find('Xiao'))     # -1

  • index() 方法

区别
index() 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始位置的下标,否则则报出异常

str = 'xiao and bai and XB'
# 查找字串第一次出现的位置
print(str.index('and'))      # 5
print(str.index('and', 10, 18))       # 13
# 没有找到则返回 -1
print(str.index('Xiao'))     # 异常

  • rfind和rindex方法

rfind和rindex方法
用法和上面一样,只是从字符串的末尾开始查找

str = 'xiao and bai and XB'
# 查找字串第一次出现的位置
print(str.rfind('and'))      # 13
print(str.rfind('and', 0, 10))       # 5
# 没有找到则返回 -1
print(str.rfind('Xiao'))     # -1

  • count() 方法

统计在 字符串/列表/元组 中某个字符出现的次数。

str = 'xiao and bai and XB'
print(str.count('and'))     # 2

7.字符串转化为列表 📌

  • list(str) 暴力转化

将字符串每个元素都拆分储存在列表里面

str1 = '123str'
lst1 = list(str1)       # ['1', '2', '3', 's', 't', 'r']

str2 = '123 str'
lst2 = list(str2)       # ['1', '2', '3', ' ', 's', 't', 'r']
  • str.split() 指定分隔方式

🚨注意:如果要指定分隔次数,就必须指定分隔符

语法:
str.split(str = “”, num = string.count(str))

str => 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num => 分割次数。默认为 -1, 即分隔所有。 如果参数 num有指定值,则分隔成num+1个子字符串

# 默认为空字符
str1 = "hello world"
lst1 = str1.split()      # ['hello', 'world']

str2 = "hello world"
lst2 = str2.split(' ')      # ['hello', 'world']

# 指定分隔次数
str3 = "xiao bai xiao bai xiao bai"
lst3 = str3.split(' ', 2)   # ['xiao', 'bai', 'xiao bai xiao bai']

8.列表转化为字符串 📌

🚨注意:列表转字符串,前提是列表里是字符串

语法:
str.join(sequence)

将sequence序列中的元素以指定的字符(分隔符)str连接生成一个新的字符串。
str => 分隔符,可以为空
sequence =>要连接的元素序列。(例如,字符串、元组、字典、列表)

lst = ['xiao', 'bai']
str1 = ''.join(lst)      # xiaobai
str2 = ' '.join(lst)     # xiao bai

最后 ✨✨✨

🌈Zero-Py系列(Python基础知识部分)创建是想要对Python基础语法进行一个全面的总结,便于大家系统的查找相关知识点和一些技巧,由于想要尽量全面展示知识点,所以分为几个模块来阐述

如果想要对总体知识进行检索,可以跳转链接: Python基本知识点以及一些处理技巧概览(📌总体大纲=>可自由检索)进行查看

如果有什么不足或者疑问,欢迎留言讨论🥰🥰🥰

  • 36
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些警告信息表明在模型的训练过程中,一些模块被视为无操作(zero-op)。这通常是由于模型的某些部分没有被正确地使用或设置导致的。以下是对每个警告的简要解释: - Dropout模块:Dropout是一种常用的正则化技术,但在推理阶段通常不需要使用。如果在推理阶段使用了Dropout模块,它会被视为无操作。 - PositionalEncoding模块:Transformer模型使用Positional Encoding来编码输入序列的位置信息。但在某些情况下,如果没有正确地设置Positional Encoding模块,它可能被视为无操作。 - NonDynamicallyQuantizableLinear模块:这个警告通常出现在使用量化技术对模型进行压缩时。NonDynamicallyQuantizableLinear是指无法动态量化的线性层,可能会被视为无操作。 - TransformerEncoderLayer模块:TransformerEncoderLayer是Transformer模型中的一个关键组件,但在某些情况下,如果没有正确地使用或配置该模块,它可能被视为无操作。 - TransformerEncoder模块:TransformerEncoder是由多个TransformerEncoderLayer组成的编码器。类似于上述警告,如果没有正确地配置该模块,它可能被视为无操作。 - PredictionTransformer模块:这个警告出现在CSDN开发的具体模型中,可能是该模型使用了一些自定义的组件或层,但没有正确地使用或配置导致被视为无操作。 要解决这些警告,你需要检查相应的模块的使用和配置,确保其正常运行,并根据需要进行调整和修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值