在python中获取字符串的一部分的最佳方法是什么?
我已经学习python几个月了,我有一个问题 例如,我有一个字符串在python中获取字符串的一部分的最佳方法是什么?,python,Python,我已经学习python几个月了,我有一个问题 例如,我有一个字符串s='string_123',我需要从s获取“123” 据我所知,python提供了一些方法: 这个问题可能与以下情况有关: 但是,它主要比较split()和regex。我需要知道每种方法的细节 s.split("_")[-1] s.partition("_")[2] s[7:] 那么上面哪条路最好呢?或者我们还有其他更好的方法吗?和之间的区别是,分区只会在给定分隔符第一次出现时分割,并返回分隔符本身 split将返回字符串数组
s='string_123'
,我需要从s获取“123”
据我所知,python提供了一些方法:
这个问题可能与以下情况有关:
但是,它主要比较split()和regex。我需要知道每种方法的细节
s.split("_")[-1]
s.partition("_")[2]
s[7:]
那么上面哪条路最好呢?或者我们还有其他更好的方法吗?和之间的区别是,分区
只会在给定分隔符第一次出现时分割,并返回分隔符本身
split
将返回字符串数组,根据给定分隔符的位置分隔字符串,但不包括数组中的分隔符
取字符串“a+b+c+d”
只有在知道下划线正好位于位置6时,才能使用s[7://code>。这也将返回下划线后的所有内容,因此假设我们希望根据“+”号拆分前一个字符串,知道加号位于位置1,我们将使用数组表示法:
"a+b+c+d"[2:] # (= "b+c+d")
您可以将其与:
你也可以这样做:
>>> import re
>>> re.findall(r'\d+', s)[0]
'123'
它使用正则表达式来标识字符串中的数字,并将它们拆分为一个列表<代码>[0]
选择字符串中出现的第一个数字实例。从任何方面看,您都需要告诉它是最快的,比如速度、内存使用情况、复杂性。所以,这取决于你的需要。
例如,最简单的方法是使用:
s='string_123'
end = None
print(s[7:end])
如果您不知道在哪里
请使用此选项
s='string_123'
index=0
for i in s:
index=index+1
if i=='_':
break;
end = None
print(s[index:end])
用于拆分字符串
print(s.split('_'))
这里的代码:python的方式是s[7:]请看:这取决于您的需要。如果您确定您的字符串有下划线,并且希望得到第二部分,那么split是一个不错的选择。但正如我所说,这是最好的条件,我没有提到从字符串@i获取数字_th@xyz为什么这更像蟒蛇?如果我们想要在
\uuu
之后的部分,那么我认为前两个部分中的一个遵循Python禅宗中的“显式优于隐式”
s='string_123'
index=0
for i in s:
index=index+1
if i=='_':
break;
end = None
print(s[index:end])
print(s.split('_'))