Как извлечь частичное значение из строки в Python? - PullRequest
0 голосов
/ 17 июля 2011

У меня есть следующая строка:

(1, 2, 3, 4)

Я хочу преобразовать его в последние два значения:

(3, 4)

В моем действительном коде все четыре поля являются целыми числами, но сильно различаются по длине. Я пытался сделать это с помощью регулярных выражений и выражений for, а также пробовал различные ответы на похожие вопросы здесь, в SO, но пока не получилось.

Ответы [ 3 ]

5 голосов
/ 17 июля 2011

Это дает вам два последних термина в вашем кортеже:

>> a = (1,2,3,4)
>> a[-2:]
(3,4)
2 голосов
/ 17 июля 2011

Звучит так, как будто вы хотите использовать оператор среза .

Редактировать: Возможно, эта является лучшей ссылкой. Прокрутите немного вниз для обозначения фрагмента. В примерах рассматриваются строки, но они должны работать с любым типом последовательности.

0 голосов
/ 17 июля 2011

Если (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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...