簡體   English   中英

如何用另一個字符的所有可能組合替換列表中字符串的第一個和最后一個元素

[英]How to replace the first and last elements of strings in a list with all possible combinations of chars from another

例如:

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"]

沒有依賴項和列表理解的其他選項排列:

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']

您必須遍歷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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM