python - python - 如何合并列表中的元素,直到Python中每个元素之间没有共同字符?
问题描述
我有一个列表 =['01', '25', '47', '57']
我如何迭代或递归地合并元素直到最终列表是['01','2574']
?
解决方案
您可以使用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']
推荐阅读
- entity-framework-6 - 如何在实体框架中使用 COLLATE Latin1_General_bin?
- java - 在数组中查找值总和等于给定总和的索引对
- azure - AZURE 中的多维立方体
- aws-appsync - 运行事务 - AppSync Aurora Serverless Resolver RDS
- arrays - 如何通过 Powershell 更新嵌套 json 文件中的值
- c++11 - 从 boost::interprocess 共享内存访问 boost::unordered_map 数据时出现段错误
- c# - API 网关聚合 POST (Ocelot)
- scala - 参数操作上的Scala通用方法错误
- javascript - 如何在下拉导航栏下修复孩子 1 的外观?
- android - Android 运行服务以从设备捕获呼叫语音上行链路和下行链路