Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中获取字符串的一部分的最佳方法是什么?_Python - Fatal编程技术网

在python中获取字符串的一部分的最佳方法是什么?

在python中获取字符串的一部分的最佳方法是什么?,python,Python,我已经学习python几个月了,我有一个问题 例如,我有一个字符串s='string_123',我需要从s获取“123” 据我所知,python提供了一些方法: 这个问题可能与以下情况有关: 但是,它主要比较split()和regex。我需要知道每种方法的细节 s.split("_")[-1] s.partition("_")[2] s[7:] 那么上面哪条路最好呢?或者我们还有其他更好的方法吗?和之间的区别是,分区只会在给定分隔符第一次出现时分割,并返回分隔符本身 split将返回字符串数组

我已经学习python几个月了,我有一个问题

例如,我有一个字符串
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('_'))