首页 > 解决方案 > 如何在 Python 的子列表中合并连续的字符串项?

问题描述

我想从列表中子列表的所有元素中删除特殊字符。我该怎么做?

list = [['abch', 'def',1,11],['cdjje', 'fef',2,22],['oefg', 'pqkjbr',3,33]]

'abc', 'def' 是一个字符串,', ' 应该被替换为空格。预计输出为:

    list = [['abch def',1,11],['cdjje fef',2,22],['oefg pqkjbr',3,33]]

我正在尝试下面的代码,但它似乎不起作用:

value_list=[]
for idx, item in enumerate(list):
    value_list[idx] = re.sub(r"', '"," ", str(item[0:-2]))
    print(value_list)

标签: pythonstringlist

解决方案


您可以使用

lst = [['abc', 'def',1,11],['cde', 'fef',2,22],['efg', 'pqr',3,33]]
result = []
for l in lst:
    res = []
    for i, s in enumerate(l):
        if isinstance(s, str):
            if len(res) > 0 and isinstance(res[i-1], str):
                res[i-1] += f" {s}"
            else:
                res.append(s)
        else:
            res.append(s)
    result.append(res)

print(result)
# => [['abc def', 1, 11], ['cde fef', 2, 22], ['efg pqr', 3, 33]]

请参阅Python 演示注意:不要将变量命名为内置变量,list它是 Python 内置的,您可以为列表使用其他名称,例如lst,l等。


推荐阅读