poke_list = [... 'Charizard', '(Mega', 'Charizard', 'X)', '78', '130', ...] #1000+ values

是否可以合并以'('开头并以')'结尾的字符串,然后将其重新插入同一列表或新列表中

我想要的输出poke_list = [... 'Charizard (Mega Charizard X)', '78', '130', ...]

分析解答

您可以遍历列表元素,检查每个元素是以(开头还是以)结尾。一旦找到括号之间的元素,就可以通过字符串.join方法将它们连接起来,如下所示:

poke_list = ['Charizard', '(Mega', 'Charizard', 'X)', '78', '130']

new_poke_list = []
to_concatenate = []
flag = 0

for item in poke_list:
    if item.startswith('('):
        to_concatenate.append(item)
        flag = 1
    elif item.endswith(')'):
        to_concatenate.append(item)
        concatenated = ' '.join(to_concatenate)
        new_poke_list.append(concatenated)
        to_concatenate = []
        flag = 0
    else:
        if flag == 0:
            new_poke_list.append(item)
        else:
            to_concatenate.append(item)

print(new_poke_list)

当元素在方括号内时,将flag设置为1,否则将0设置为0