当前位置: 首页 > news >正文

python字符串相关

python字符串相关

    • 一、reverse() 函数 只能反转 列表
    • 二、reversed() 反转元组字符串等等 返回迭代器
    • 三、join和reversed反转字符串
    • 四、join串联字符串(join连接对象仅限字符串、储存字符串的元组、列表、字典)数字对象可通过str()转化为字符串⭐
      • 对象为字符串
      • 对象为元组
      • 对象为列表
      • 对象为字典⭐
    • 数字对象可通过str()转化为字符串⭐
    • 五、set()获得不重复元素集合(类似unique)
      • 对于字典,set和reverse操作针对的都是key
    • r字符串前缀
      • r""正则表达式中的应用
      • 文件路径处理
    • re 模块主要方法(re 模块几乎包含了正则表达式的所有功能)

一、reverse() 函数 只能反转 列表

reverse() 函数用于反向列表中元素。
reverse()方法语法:

list.reverse()
#!/usr/bin/pythonaList = [123, 'xyz', 'zara', 'abc', 'xyz']aList.reverse()
print "List : ", aList

二、reversed() 反转元组字符串等等 返回迭代器

seq — 需要转换的序列,如元组、列表、字符串、range

seqTuple = ('H', 'e', 'l', 'l', 'o') # 元组
print(list(reversed(seqTuple)))
seqList = [7, 8, 4, 5, 6]  # 列表
print(list(reversed(seqList)))
seqString = 'HelloWorld' # 字符串
print(list(reversed(seqString)))
seqRange = range(1, 8)    # range
print(list(reversed(seqRange)))
['o', 'l', 'l', 'e', 'H']
[6, 5, 4, 8, 7]
['d', 'l', 'r', 'o', 'W', 'o', 'l', 'l', 'e', 'H']
[7, 6, 5, 4, 3, 2, 1]

三、join和reversed反转字符串

可惜不能反转字符串

st="python"
#⽅法1
''.join(reversed(st))
# st.reverse() #'str' object has no attribute 'reverse'

四、join串联字符串(join连接对象仅限字符串、储存字符串的元组、列表、字典)数字对象可通过str()转化为字符串⭐

语法:'sep'.join(sep_object)
参数说明

sep:分割符,可为“,、;”等。

sep_object:分割对象,可为字符串、以及储存字符串的元组、列表、字典。

用法:连接任意数量的字符串(包括要连接的元素字符串、元组、列表、字典),用新的目标分隔符连接,返回新的字符串。

对象为字符串

';'.join('abc') #输出结果为:'a;b;c'  string1 = 'good idea'#定义字符串
' '.join(string1)  输出结果:'g o o d   i d e a' #说明:由于字符串里没指明按字符串之间是怎么连接的,默认每个字符之间插入目标字符

对象为元组

tuple1 = ('a', 'b', 'c')  # 定义元组tuple1
'、'.join(tuple1)
# print('、'.join(tuple1))
# a、b、c
tuple2 = ('hello', 'peace', 'world')  # 定义元组tuple2
' '.join(tuple2)
# print(' '.join(tuple2))
# hello peace world

对象为列表

b = ['a', 'b', 'c']  # 定义列表
print('、'.join(b))
# a、b、c
list1 = ['hello', 'peace', 'world']  # 定义列表
print(' '.join(list1))
# hello peace world

对象为字典⭐

c={'hello':1,'world':2}
print(';'.join(c))
# hello;world
d = {'hello':'hi','world':'2'}
print(' '.join(d))
# hello world

数字对象可通过str()转化为字符串⭐

报错❌

a = (1,2,3) #定义元组a
';'.join(a)
#报错:TypeError: sequence item 0: expected str instance, int found

分割对象储存的对象要为字符串,否则会报错
数字对象可通过str()转化为字符串

a = (1,2,3) #定义元组a
';'.join(a)b = (186234,1385475,1235462)
';'.join(str(i) for i in b)#调用set函数去重处理
e = (1,2,3,2) #定义元组a
'、'.join(str(i) for i in set(e))

五、set()获得不重复元素集合(类似unique)

语法:set(<iterable>)
参数说明:iterable:是指可遍历的对象。可为string字符串、list列表、tuple元组对象,可为空值,返回结果为新的空集对象即“set()”。但 不可以直接传入number数字对象(float浮点数、int整数)否则会报错。

(2)用法:获取独特元素的无序集合。
即获取得到的集合里的元素是无先后顺序、不重复。

set('1')  #输出结果为{'1'}
set('a,b,c,b,c,d')  #输出结果为:{',', 'a', 'b', 'c', 'd'}
set('andjn')  #输出结果为:{'a', 'd', 'j', 'n'}
set((1,2,1))  #输出结果为:{1, 2}
set(('a','b','f','d','g','f'))  #输出结果为:{'d', 'a', 'f', 'g', 'b'}
set([1,2,1])  #输出结果为:{1, 2}
set(['a','b','f','d','g','f'])  #输出结果为:{'a', 'b', 'd', 'f', 'g'}

对于字典,set和reverse操作针对的都是key

tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'}
print(set(tinydict))

原文链接:代码摘自该博主的python专栏,只搬来学习,侵删

r字符串前缀

在Python中,r字符串前缀是一种特殊的字符串前缀,用于表示原始字符串。当一个字符串以r前缀开始时,它将被视为原始字符串,其中的转义字符将被忽略

r字符串前缀的作用是消除转义字符的特殊含义,使字符串中的每个字符都按照字面意义进行解释。这在处理包含大量反斜杠、制表符、换行符等特殊字符的字符串时非常有用。

使用原始字符串可以避免手动转义特殊字符,使字符串的处理更加简洁和直观。

在Python中,字符串中的转义字符以反斜杠(\)开头,用于表示一些特殊字符或字符序列。例如,\n表示换行符,\t表示制表符。

# 使用r字符串前缀
path = r'C:\Users\username\Documents'
print(path)

在上面的示例中,r字符串前缀将反斜杠字符视为普通字符,而不是转义字符。这样可以避免由于转义字符造成的错误或混淆。

	形如r"c:\news",由r开头引起的字符串就是声明了后面引号里的东西是原始字符串,在里面放任何字符都表示该字符的原始含义。有时候匹配正则表达式中,有时候会有斜线 \ 没有 r ,就要写2个 \ \ 有 r ,只要写一个 \ 	这种方法在做网站设置和网站目录结构的时候非常有用,使用了原始字符串就不需要转义了。例如:file_object=open('C:\\Users\\ooooooobh\\Desktop\\ooooooobh.txt')file_object=open(r'C:\Users\ooooooobh\Desktop\ooooooobh.txt')

r""正则表达式中的应用

正则表达式中的特殊字符
在正则表达式中,某些字符具有特殊含义,例如点号(.)、星号(*)、加号(+)等。如果要匹配这些特殊字符本身,而不是它们的特殊含义,可以使用r字符串前缀。

import re# 使用r字符串前缀处理正则表达式
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
email = 'example@example.com'if re.match(pattern, email):print('Valid email address')
else:print('Invalid email address')

在上面的示例中,r字符串前缀将正则表达式中的特殊字符视为普通字符,而不是具有特殊含义的元字符。这样可以确保正则表达式的准确性和可读性。

文件路径处理

4.1 文件路径中的转义字符
在处理文件路径时,可能会遇到包含反斜杠等转义字符的情况。使用r字符串前缀可以确保这些转义字符被正确解释,而不是被视为特殊字符。

4.2 使用r字符串前缀处理文件路径
下面是一个示例,展示了如何使用r字符串前缀来处理文件路径中的转义字符:

# 使用r字符串前缀处理文件路径
path = r'C:\Users\username\Documents\example.txt'with open(path, 'r') as file:content = file.read()print(content)

在上面的示例中,r字符串前缀确保文件路径中的反斜杠被正确解释为普通字符,而不是作为转义字符。这样可以避免由于转义字符造成的错误或混淆。

原文链接

re 模块主要方法(re 模块几乎包含了正则表达式的所有功能)


import reprint(re.search(r'abc', 'abcef'))
# <_sre.SRE_Match object; span=(0, 3), match='abc'>
print(re.search(r'abc', 'aBcef'))
# None

import reprint(re.match(r'abc', 'abcef'))
# <_sre.SRE_Match object; span=(0, 3), match='abc'>

abc需要完美匹配abc


import reprint(re.fullmatch(r'abc', 'abcef'))
# None
print(re.fullmatch(r'abc', 'abc'))
# <_sre.SRE_Match object; span=(0, 3), match='abc'>

相关文章:

python字符串相关

python字符串相关 一、reverse() 函数 只能反转 列表二、reversed() 反转元组字符串等等 返回迭代器三、join和reversed反转字符串四、join串联字符串&#xff08;join连接对象仅限字符串、储存字符串的元组、列表、字典&#xff09;数字对象可通过str()转化为字符串⭐对象为字…...

JavaScript学习笔记01

JavaScript笔记01 什么是 JavaScript JavaScript 是一门世界上最流行的脚本语言&#xff0c;它是一种弱类型的脚本语言&#xff0c;其代码不需要经过编译&#xff0c;而是由浏览器解释运行&#xff0c;用于控制网页的行为。 发展历史 参考&#xff1a;JavaScript的起源故事…...

golang 通用的 grpc http 基础开发框架

go-moda golang 通用的 grpc http 基础开发框架仓库地址: https://github.com/webws/go-moda仓库一直在更新,欢迎大家吐槽和指点 特性 transport: 集成 http&#xff08;echo、gin&#xff09;和 grpc。tracing: openTelemetry 实现微务链路追踪pprof: 分析性能config: 通用…...

FSK解调技术的FPGA实现

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 一、FSK信号的解调原理 FSK信号的解调也有非相干和相干两种&#xff0c;FSK信号可以看作是用两个频率源交替传输得到的&#xff0c;所以FSK的接收机由…...

Matlab图像处理-高斯低通滤波器

高通滤波 图像的边缘、细节主要位于高频部分&#xff0c;而图像的模糊是由于高频成分比较弱产生的。高通滤波就是为了高消除模糊&#xff0c;突出边缘。因此采用高通滤波器让高频成分通过&#xff0c;消除低频噪声成分削弱&#xff0c;再经傅里叶逆变换得到边缘锐化的图像。 …...

文件上传之图片马混淆绕过与条件竞争

一、图片马混淆绕过 1.上传gif imagecreatefromxxxx函数把图片内容打散&#xff0c;&#xff0c;但是不会影响图片正常显示 $is_upload false; $msg null; if (isset($_POST[submit])){// 获得上传文件的基本信息&#xff0c;文件名&#xff0c;类型&#xff0c;大小&…...

代码随想录二刷day16

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣104. 二叉树的最大深度二、力扣559. N 叉树的最大深度三、力扣111. 二叉树的最小深度三、力扣力扣222. 完全二叉树的节点个数 前言 一、力扣104. 二叉树…...

【开发】安防监控/视频存储/视频汇聚平台EasyCVR优化播放体验的小tips

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成&#xff0c;…...

力扣(LeetCode)算法_C++—— 只出现一次的数字

给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 示例 1 &#xff1a; 输入&#xff1…...

Windows配置SonarQube代码审查工具详细步骤(附带IDEA SonarLint插件使用)

文章目录 环境说明以及准备一. SonarQube的下载与安装二. 添加SonarQube项目三. 使用Maven命令上传代码到SonarQube四. IDEA安装SonarLint插件 环境说明以及准备 本篇博客使用的SonarQube版本为9.8&#xff0c;注意JDK 1.8已经不能支持 NameVersionDownLoad LinkSonarQube9.8…...

【Unity3D】UI Toolkit元素

1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery、Debugger&#xff0c;UI Toolkit容器 中介绍了 VisualElement、ScrollView、ListView、GroupBox 等容器&#xff0c;UI Toolkit样式选择器 中介绍了简单选择器、复杂选择器、伪类选择器等样式选择器&#xff0c;…...

Task :app:compileDebugKotlin FAILED

gradle.properties 里面加上 android.enableJetifiertrue...

Android——数据存储(一)(二十一)

1. 数据存储 1.1 知识点 &#xff08;1&#xff09;掌握Android数据存储的分类&#xff1b; &#xff08;2&#xff09;可以使用SharedPreferences存储数据。 1.2 具体内容 对于我们数据的存储而言&#xff0c;Android一共提供了5个数据存储的方式&#xff1a;SharedPrefe…...

机器学习课后习题 ---数学基础回顾

(一)选择题 1.函数y=1/(x+1)是 A.偶函数 B.奇函数 C.单调函数 D.无界函数 2.设f(sin(x/2)=cosx+1,则f(x)为() A.2x-2 B.2-2x C.1+2 …...

CS420 课程笔记 P4 - 以16进制形态编辑游戏文件

文章目录 IntroductionFinding save filesStringsUnicodeExample!Value searchHealth searchConclusion Introduction 这节课我们将学习编辑十六进制&#xff0c;主要用于编辑保存文件&#xff0c;但十六进制编辑涉及的技能可以很好地转移到&#xff1a; Save file editingRe…...

计算机毕设之Python的高校成绩分析(含文档+源码+部署)

本系统阐述的是一个高校成绩分析系统的设计与实现&#xff0c;对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计&#xff0c;描述&#xff0c;实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体架构。…...

【Sentinel】核心API-Entry与Context

文章目录 一、Entry1、Entry的声明2、使用API自定义资源3、基于SentinelResource注解标记资源 二、Context1、Context介绍2、Context的初始化3、AbstractSentinelInterceptor4、ContextUtil 一、Entry 1、Entry的声明 默认情况下&#xff0c;Sentinel会将controller中的方法作…...

HashMap源码阅读解惑

HashMap的hash函数&#xff08;1.8&#xff09; 首先1.7的是四次扰动&#xff0c;1.8做了优化。 简单的说就是对key做hashCode操作&#xff0c;然后将得到的32为散列值向右位移16位&#xff0c;再与hashCode做异或计算。实质上是把一个数的低16位与他的高16位做异或运算。 st…...

如何解决前端传递数据给后端时精度丢失问题

解决精度丢失 有时候我们在进行修改操作时&#xff0c;发现修改既不报错也不生效。我们进行排查后发现服务器端将数据返回给前端时没有出错&#xff0c;但是前端js将数据进行处理时却出错了&#xff0c;因为id是Long类型的&#xff0c;而js在处理后端返回给前端的Long类型数据…...

使用Maven创建父子工程

&#x1f4da;目录 创建父工程创建子模块创建子模块示例创建认证模块(auth) 结束 创建父工程 选择空项目&#xff1a; 设置&#xff1a;项目名称&#xff0c;组件名称&#xff0c;版本号等 创建完成后的工程 因为我们需要设置这个工程为父工程所以不需要src下的所有文件 在pom…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...