Разделить строку со скобкой в скобках в Python

91
13

У меня есть два типа строк; каждый тип может иметь одну из следующих образцовых форм:

str = ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9))

или

str = ((0, 1, 2), (3, 4, 5, 6, 7), (8, 9))

Количество подстрок в круглых скобках во второй форме может варьироваться от 1 до любого числа.

Мне нужно a), чтобы иметь возможность обнаруживать присутствие каждой формы, и б) если строка имеет вторую форму, мне нужно извлечь каждую из подстрок внутри каждой внутренней скобки.

У меня есть основное понимание регулярных выражений, но я не вижу, как это должно быть обработано.

спросил(а) 2016-07-06T18:47:00+03:00 4 года, 3 месяца назад
1
Решение
81

Если это только два варианта, вы можете использовать:

if type(str[0]) == int:
print 'TYPE1'
else if type(str[0]) == tuple:
print 'TYPE2'
else:
print 'unknown'

и для вашего второго вопроса, если вы в форме 2, используйте:

list(sum(str, ()))

чтобы сгладить кортеж, таким образом вы можете получить доступ к каждому элементу индивидуально.

Если вы хотите получить доступ к кортежам в целом, вы можете использовать:

for element in str:
#element is an inner tuple
for inner_element in element:
#inner_element is an integer within the tuple
print inner_element

Надеюсь это поможет

ответил(а) 2016-07-06T18:56:00+03:00 4 года, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема