2017-10-17 50 views
1

我知道,我的變量將存儲類似:檢索一切逗號前

x = '(2,)' 
x = '(5,)' 

我怎麼能只提取次數(逗號之前並刪除括號),並存儲爲x

所以總體

x = 2時

或x = 5

編輯:索爾對於我非常糟糕的編程語言,它是一個元組而不是字符串,非常感謝您的幫助。

+0

你在哪裏變量是從哪裏來的?爲什麼最初以這種奇怪的方式存儲?這可能是更好地解析它不同於上游,而不是現在修復它 –

+0

@Chris_Rands它從SQL語句獲得 –

回答

0

下面的代碼刪除所有開頭和結尾的括號,以及逗號:

x.strip('(),') 

如果你也想的結果轉換爲整數,使用:

int(x.strip('(),')) 

然而,似乎你的x不是一個字符串,但真的是一個Python元組:

x = (2,) 

在這種情況下,只需使用:

x[0] 
+0

感謝您的評論,請參閱ammend - 對不起,我忘了括號封裝它! –

0

你可以嘗試

y = x[:x.find(',')] 

OP編輯的問題後:執行

y = x[x.find('(')+1:x.find(',')] 

例(jupyter):

x = '(5,)' 

y = x[x.find('(')+1:x.find(',')] 

y 
Out[24]: '5' 
+0

警告!如果您的輸入字符串不以「,」結尾,這將盲目地刪除最新的數字。也就是說,'x ='23''會導致'y ='2''。這可能不會發生在你現在的輸入中,但如果它確實發生了,這將是非常令人驚訝和難以調試的。 – vog

+0

@vog是的,我知道它。但OP寫道:「我怎樣才能提取數字(在逗號之前)'。我假設,該輸入字符串將包含逗號。 – kvorobiev

+0

感謝您的評論,請參閱ammended - 對不起,我忘了括號封裝它!是的,現在總是有一個逗號 –

0

正則表達式:

import re 
regex = r"(\d*)\," 
test_str = "10," 
matches = re.findall(regex, test_str) 
x = int(matches[0]) # 10 

Try online here

+0

感謝您的評論,請參閱ammended - 對不起,我忘記括號封裝它! –