首页 > 解决方案 > python - 如何合并列表中的元素,直到Python中每个元素之间没有共同字符?

问题描述

我有一个列表 =['01', '25', '47', '57'] 我如何迭代或递归地合并元素直到最终列表是['01','2574']

标签: pythonpython-3.x

解决方案


您可以使用while循环继续查找列表中与输出列表中最后一个字符串中的最后一个字符匹配的下一对字符,如果找到匹配项,则将该对中的另一个字符连接到字符串,或者附加如果没有匹配,则将第一个字符串添加到输出列表,并从输入列表中删除匹配的字符串或第一个字符串,直到列表变为空:

lst = ['01', '25', '47', '57']
output = []
while lst:
    for i, pair in enumerate(lst):
        if output and output[-1][-1] in pair:
            output[-1] += pair[output[-1][-1] == pair[0]]
            del lst[i]
            break
    else:
        first, *lst = lst
        output.append(first)

output变成:

['01', '2574']

推荐阅读