python字符串相关

python字符串相关

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

reverse() 函数用于反向列表中 元素。

reverse()方法语法:

python 复制代码
list.reverse()
python 复制代码
#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 'xyz']

aList.reverse()
print "List : ", aList

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

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

python 复制代码
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)))
python 复制代码
['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反转字符串

可惜不能反转字符串

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

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

语法:'sep'.join(sep_object)

参数说明

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

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

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

对象为字符串

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

对象为元组

python 复制代码
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

对象为列表

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

对象为字典⭐

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

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

报错❌

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

分割对象储存的对象要为字符串,否则会报错

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

python 复制代码
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)用法:获取独特元素的无序集合。

即获取得到的集合里的元素是无先后顺序、不重复。

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

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

python 复制代码
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'}
print(set(tinydict))

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

r字符串前缀

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

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

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

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

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

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

python 复制代码
	形如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字符串前缀。

python 复制代码
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字符串前缀来处理文件路径中的转义字符:

python 复制代码
# 使用r字符串前缀处理文件路径
path = r'C:\Users\username\Documents\example.txt'

with open(path, 'r') as file:
    content = file.read()
    print(content)

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

原文链接

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

python 复制代码
import re

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

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

abc需要完美匹配abc

python 复制代码
import re

print(re.fullmatch(r'abc', 'abcef'))
# None
print(re.fullmatch(r'abc', 'abc'))
# <_sre.SRE_Match object; span=(0, 3), match='abc'>
相关推荐
我不爱机器学习26 分钟前
python环境配置问题(个人经验)
开发语言·python
yukai0800840 分钟前
Python 算法交易实验89 QTV200日常推进-模式思考
python
南宫理的日知录1 小时前
84、Python之鸭子类型:魔术方法&自定义类型也可以实现加减乘除
开发语言·python·学习·编程学习
吃点李子1 小时前
QQ机器人搭建
python·机器人
AI算法董同学1 小时前
VS Code 配置 Anaconda Python 环境
开发语言·windows·vscode·python·编辑器
deephub1 小时前
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
人工智能·python·机器学习·numpy·sklearn·特征工程
GISer Liu1 小时前
LeetCode从入门到超凡(四)深入浅出理解贪心算法
python·算法·leetcode·面试·职场和发展·贪心算法·datawhale
音符犹如代码2 小时前
第十四届蓝桥杯真题Python c组D.平均(持续更新)
python·蓝桥杯
学地理的小胖砸2 小时前
【5米光学卫星(资源一号02D/02E卫星)】
开发语言·python·信息可视化·遥感·地理信息
_.Switch2 小时前
Python Web 与物联网(IoT)集成与实时数据处理
开发语言·前端·python·物联网·架构·log4j