Индекс Python вне диапазона? _ - PullRequest
0 голосов
/ 30 сентября 2018

Функция должна удалять аргументы между () и вставлять их как один аргумент в списке.(Тестовый тест2) работает.В (Test Test2) (Test3 Test4) он показывает ошибку:

if args[i].startswith('('):
IndexError: list index out of range

Вот функция:

def format_args(args):
    start_string = None
    end_string = None
    in_string = False
    o_string = ''
    for i in range(1, len(args)):
        if args[i].startswith('('):
            if not in_string:
                start_string = i
                in_string = True
        if in_string:
            if args[i].endswith(')'):
                o_string += args[i]
                end_string = i

                for r in range(start_string, end_string+1):
                    args.pop(start_string)
                args.insert(start_string, o_string)
                o_string = ''
                in_string = False

            else:
                o_string += args[i] + ' '

    return args


inp = raw_input('args: ')
args = inp.split(' ')
args.insert(0, "test")
print(format_args(args))

1 Ответ

0 голосов
/ 30 сентября 2018

Я решил проблему с одной строкой:

args_o = "".join(args).split('\"')

удручает, что мне понадобился час для этого ..

...