python - 组合包含相似子字符串的列表元素

标签 python list

我需要组合列表中包含相同子字符串的所有元素。文本:

lst = ["A,B,C", "A,H,J", "T,Q,M", "B,R,X"]`

从第一个元素“A,B,C”开始,我需要在 lst 列表中的其余元素中查找“A”或“B”或“C”。因此,到一天结束时,元素 "A,B,C"、"A,H,J" 和 "B,R,X"应该放在一起作为一个字符串,因为它们共享任一 "A”或“B”。最终的 lst 列表应如下所示:

["A,B,C,A,H,J,B,Q,X", "T,Q,M"]

最佳答案

您可以使用set.intersection检查字符串在递归函数中是否有交集:

lst = ["A,B,C", "A,H,J", "T,Q,M", "B,R,X"]

def comb(l):
   for ind,i in enumerate(l) : 
      for ix,j in enumerate(l[ind+1:]) : 
         if set(i.split(',')).intersection(j.split(',')) and len(l)>1:
               return comb([l.pop(ind)+','+l.pop(ix)]+l)

   return l

print comb(lst)
['A,B,C,A,H,J,B,R,X', 'T,Q,M']

关于python - 组合包含相似子字符串的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29399880/

相关文章:

Python安装失败Windows 8.1-错误0x80240017 : Failed to execute MSU package

python - 使用 Matplotlib 进行 3D 绘图时 cmath 的问题

python - 在 Python ctypes 中转换为数组

c# - 从列表中删除图像 C#

Python 重新组合字典中的项目

python - 如何使用递归获得列表中所有元素的总和

python - 使用 tweepy 获取推文 url 或推文 ID

python - 导入错误 : Missing DLL on Windows 7 when trying to import Python module

python - 如何提取扩展名并保存而不重复?

r - 将单个数据框转换为数据框列表(将列名解析为前缀和后缀)