根据分隔符连接列表中的字符串元素

我试图根据一些分隔符组合列表中的所有元素;当分隔符对大于 1 时,我面临困难。

说这是清单:

['{','k0c','k1b','k2b','k3b','}','{','\\g0','\\g1','\\g2','\\g3','}']

此列表中的 12 项

每当它找到 '{' 和 '}' 时,我希望这些索引中的所有元素都连接成一个,以便它是:

['{ k0c, k1b, k2b, k3b }' , '{\\g0 , \\g1, \\g2, \\g3 }' ]

这个列表中的 2 个项目是我想要的,分隔符内的所有元素都变成了列表的一个元素。


互换的青春
浏览 165回答 2
2回答

噜噜哒

假设您的数据没有任何退化情况,我们将始终期望 a'}','{'将您的组分开。因此,获得所需输出的一种简单方法是将字符串连接在一起,拆分}然后格式化结果列表元素。l = ['{','k0c','k1b','k2b','k3b','}','{','\\g0','\\g1','\\g2','\\g3','}']out = [x.replace("{,", "{").strip(", ") + " }" for x in ", ".join(l).split("}") if x]print(out)['{ k0c, k1b, k2b, k3b }', '{ \\g0, \\g1, \\g2, \\g3 }']

catspeake

像这样的事情应该可以解决问题:input_data = [    "{",    "k0c",    "k1b",    "k2b",    "k3b",    "}",    "{",    "\\g0",    "\\g1",    "\\g2",    "\\g3",    "}",]lists = []current_list = Nonefor atom in input_data:    if atom == "{":        assert current_list is None, "nested lists not supported"        current_list = []        lists.append(current_list)    elif atom == "}":        current_list.append(atom)        current_list = None        continue    assert current_list is not None, (        "attempting to add item when no list active: %s" % atom    )    current_list.append(atom)for lst in lists:    print(" ".join(lst))输出是{ k0c k1b k2b k3b }{ \g0 \g1 \g2 \g3 }但是你可以对字符串列表做任何你喜欢的事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python