我有一个代码,它以字符串格式生成结果。格式由给出
variable[a,b]
其中a和b是字符串中的两个不同数字。例如,以下是一些结果:
result = "variable[21,30]"
result = "variable[19,27]"
result = "variable[11,16]"
我的目标是取字符串中的第二个数字。在示例中,第二个数字是30、27和16。为了找到它们,我使用了下面的简单代码:
second number = result[12:14]
在这些情况下,所有数字都是两位数。所以我知道第二个数字在字符串的字符12和14之间。但是,当数字的位数可以在1到4位数的范围内时,我的问题就出现了。因此,我不知道字符串中第二个数字的位置!。例如:
result = "variable[1,230]"
result = "variable[19,2]"
result = "variable[61,1672]"
那么,我怎样才能找到第二个数字呢?
我知道第二个数字在字符"之间"one_answers"]&";。因此,我正在考虑一种方法,使我可以通过特定的符号而不是位置来获取字符串的一部分。我知道下面的代码是不正确的,但只是举个例子,不是定义范围,而是定义符号如下:
second number = result[ "," : "]" ]
您可以使用以下代码:
second_number = result.split(',')[1][:-1]
好吧,当你想找到字符串中特定字符的位置时,你可以使用find((方法。
因此,当寻找第二个数字时,您的代码应该看起来像:
start = result.find(",")
end = result.find("]")
second_number = result[start+1:end]
小心
您可以使用re.split((方法:
>>> import re
>>> values = re.split(r'[[],]', result)
>>> values
['variable', '1', '230', '']
>>> second_number = int(values[-2])
>>> second_number
230
或
>>> second_number = re.split(r'[[],]', result)[-2]
'230'