Как разбить список в кортеже? - PullRequest
0 голосов
/ 06 февраля 2019

Я работаю со стеками и хочу разделить значение «push».В целом, это просто список в кортеже.Я получил (в качестве вывода):

('_stack_', ['data inside the stack'])

, и я хочу получить это:

('_stack_',['data','inside','the','stack])

Я попробовал, но он выдал ошибку (примечание: «Стек»это переменная, которая относится к выводу выше):

for i in Stack: 
    Stack[1].split()

Если бы кто-нибудь мог мне помочь, я предполагаю, что хотя это стек, те же самые основы итерации по кортежу и спискам все еще должны сохраняться?Спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

Просто создайте новый кортеж с необходимыми значениями, например так:

t  = ('_stack_', ['data inside the stack'])
nt = (t[0], t[1][0].split())

Теперь nt соответствует ожиданиям:

nt
=> ('_stack_', ['data', 'inside', 'the', 'stack'])
0 голосов
/ 07 февраля 2019

Один вкладыш для создания нового кортежа с использованием списка списков

tuple([i[0].split() if isinstance(i,list) else i for i in your_tuple])

Вывод

('_stack_', ['data', 'inside', 'the', 'stack'])
0 голосов
/ 06 февраля 2019

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

splitted_list = ('_stack_', ['data inside the stack'])[1][0].split()
...