简体   繁体   English

Python索引超出范围?_

[英]Python index out of range?_

The function should delete arguments between () and insert them as a single argument in the list. 该函数应删除()之间的参数,并将其作为单个参数插入列表中。 (Test test2) works. (测试test2)有效。 At (Test Test2) (Test3 Test4) it shows an error: 在(Test Test2)(Test3 Test4)处显示错误:

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

Here is the function: 这是函数:

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))

I solved the problem with one line: 我用一行解决了这个问题:

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

depressing that I needed an hour for it .. 沮丧的是我需要一个小时的时间..

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM