2011-07-17 162 views
0

我有以下字符串:我如何從python中的字符串中提取部分值?

(1, 2, 3, 4) 

我想它只是最後兩個值轉換:

(3, 4) 

在我實際的代碼的所有四個字段是整數,但在長度上相差很大。我試圖用正則表達式和'for'語句來做這件事,以及嘗試對這裏的類似問題的各種答案,但迄今爲止沒有運氣。

+3

你有一個元組,而不是一個字符串 – joaquin

+1

String is ='「This is String」'| List ='[1,2,3,4,5]'| Tuple ='(1,2,3,4)' – Sudantha

回答

5

這讓你在你的元組中的最後兩項:

>> a = (1,2,3,4) 
>> a[-2:] 
(3,4) 
+0

起初沒有用,但僅僅是因爲我將元組轉換爲字符串(oops)。謝謝:) – hef

2

這聽起來像你想使用的slice operator

編輯:或許this是一個更好的鏈接。向下滾動切片符號的東西。這些示例處理字符串,但它應該適用於任何序列類型。

+0

可能他需要傳統索引 – joaquin

0

如果(1,2,3,4)是元組:

data = (1,2,3,4) 
newData = data[-2:] 

如果你有 '(1,2,3,4)',那麼:

import ast 
data = ast.literal_eval('(1,2,3,5)') 
newData = data[-2:] 

情況下或者在你必須將這樣的列表分成一定的值:

def get_slice(inputData, searchVal): 
    if searchVal in inputData and inputData.index(searchVal) < len(inputData): 
     return inputData[inputData.index(searchVal)+1:] 
    return() 

get_slice((1,2,3,4),2) 
+1

Obwarning:'eval()'是邪惡的。 (如果他不控制字符串來自哪裏)。 –

+0

** Nuuuuuu!**使用'ast.literal_eval()' – SingleNegationElimination

+0

我完全同意你 - 這只是一個樣本,以防他在問題中提到的字符串。當然,我知道這個字符串可以被分割等等。 –