如何将列表中字符串的第一个和最后一个元素替换为另一个字符串中所有可能的字符组合

2024-06-25 22:46:22 发布

您现在位置:Python中文网/ 问答频道 /正文

例如:

list1 = ["ACCC", "ACGT", "CGCG", "TGAA"]
list2 = ['A', 'C', 'G', 'T]

实际上,我想用list2的所有可能组合替换list1中字符串的第一个和最后一个元素,并将每个元素追加回list1。你知道吗

示例输出为:

["ACCC", "ACGT", "CGCG", "TGAA", "CCCC", "GCCC", "TCCC", "ACCA", "ACCG", "ACCT", "CCCA", ..., "AGAT", "GGAT"]

Tags: 字符串元素示例cccclist2list1acctcgcg
2条回答

您必须在list2上迭代两次。一次用于所有可能的第一个元素,第二次用于所有可能的结束元素。你知道吗

list1 = ["ACCC", "ACGT", "CGCG", "TGAA"]
list2 = ['A', 'C', 'G', 'T']

output = []
for code in list1:
    for start_el in list2:
        for end_el in list2:
            output.append(start_el + code[1:-1] + end_el)

print(output)

无依赖项和列表理解的其他选项排列:

permutations = ((x,y) for x in list2 for y in list2)
[ x+e[1:-1]+y for x, y in permutations for e in list1 ]

#=> ['ACCA', 'ACGA', 'AGCA', 'AGAA', 'ACCC', 'ACGC', 'AGCC', 'AGAC', 'ACCG', 'ACGG', 'AGCG', 'AGAG', 'ACCT', 'ACGT', 'AGCT', 'AGAT', 'CCCA', 'CCGA', 'CGCA', 'CGAA', 'CCCC', 'CCGC', 'CGCC', 'CGAC', 'CCCG', 'CCGG', 'CGCG', 'CGAG', 'CCCT', 'CCGT', 'CGCT', 'CGAT', 'GCCA', 'GCGA', 'GGCA', 'GGAA', 'GCCC', 'GCGC', 'GGCC', 'GGAC', 'GCCG', 'GCGG', 'GGCG', 'GGAG', 'GCCT', 'GCGT', 'GGCT', 'GGAT', 'TCCA', 'TCGA', 'TGCA', 'TGAA', 'TCCC', 'TCGC', 'TGCC', 'TGAC', 'TCCG', 'TCGG', 'TGCG', 'TGAG', 'TCCT', 'TCGT', 'TGCT', 'TGAT']

相关问题 更多 >