首页 > 解决方案 > 在一个数组中创建 100 个字符串(python)

问题描述

我想创建一个包含 100 个字符串的数组,如下所示:

sequence = []


for i in range(0, 16):
    sequence.append(np.random.choice(nucleotides, 1, p = pfmNew[:,i]))

sequence=[val for sublist in sequence for val in sublist]  
sequence = "".join(sequence)

print(sequence)

这是我得到的输出:

TCGTTCACAGTGACAT

现在我想这样做 100 次并将它们放在一个数组中,如下所示:

['TCGTTCACAGTGACAT', 'next string', ...]

标签: pythonpython-3.x

解决方案


您快到了,您作为骨架提供的代码可以通过将size参数设置np.random.choice为 16 来一次采样 16 个核苷酸来改进。然后,您可以循环 100 次。

nucleotides = list('ACGT')

sequence = []

for _ in range(100):
    sequence.append(''.join(np.random.choice(nucleotides, 16, p = pfmNew[:,i])))

# Or you can replace the loop by a list comprehension:
# sequence = [''.join(np.random.choice(nucleotides, 16, p = pfmNew[:,i])) for _ in range(100)]

# Take a look at the first 10:
sequence[:10]

['TTCACTACCCGCAAAC', 'CTCCTGATACAGATCG', 'CTTGACGATGCTCCGA', 'ATGACCAATGAAGCCG', 'TTGCCGACGTCGATTG', 'ATATTCTTGCGCAGGT', 'CTTAGCCCATCACCCC', 'GGGTTTCCGCCTCGTA', 'ACGTCAAGTGCAGTGC', 'GGTAGATCCGAAACGC']

推荐阅读