将数组乘以数组的最佳方法

bde*_*vic 2 python string list

我想通过数组中的数字重复我的字符串中的每个字符,即if

rep = [1, 0, 1, 1, 3, 0, 0, 1, 0]
seq = 'AATCGGGAA'
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西

seq*rep
Run Code Online (Sandbox Code Playgroud)

输出

ATCGGGA
Run Code Online (Sandbox Code Playgroud)

iCo*_*dez 6

您可以使用zip,一个列表理解,和str.join:

>>> rep = [1, 0, 1, 1, 3, 0, 0, 1, 0]
>>> seq = 'AATCGGGAA'
>>>
>>> list(zip(seq, rep)) # zip pairs up the items in the two lists
[('A', 1), ('A', 0), ('T', 1), ('C', 1), ('G', 3), ('G', 0), ('G', 0), ('A', 1), ('A', 0)]
>>>
>>> ''.join([x*y for x,y in zip(seq, rep)])
'ATCGGGA'
>>>
Run Code Online (Sandbox Code Playgroud)