在 python 中的每一行和每个位置循环

Looping on each line and each position in python

我陷入了一个小循环问题。 我有一个不同位置的文件。

p = [10, 11, 16]

我有一个这样的输入文件(例如有 5 行):

s = """BCCDDDCDCCDDDDDDABCDABCABDBACBDCAACCBBCABACBCCABCACBCDCCCBDBACDCBBCBCBCCCACADAACCABABADBCBAABBBCCBB
BCCDDDCDCCDDDDDDABCDABCABDBACBDCAACCBBCABACBCCABCACBCDCCCBDBACDCBBCBCBCCCACADAACCABABADBCBAABBBCCBB
BCCDDDCDCCDDDDDDABCDABCABDBACBDCAACCBBCABACBCCABCACBCDCCCBDBACDCBBCBCBCCCACADAACCABABADBCBAABBBCCBB
BCCDDDCDCCDDDDDDABCDABCABDBACBDCAACCBBCABACBCCABCACBCDCCCBDBACDCBBCBCBCCCACADAACCABABADBCBAABBBCCBB
BCCDDDCDCCDDDDDDABCDABCABDBACBDCAACCBBCABACBCCABCACBCDCCCBDBACDCBBCBCBCCCACADAACCABABADBCBAABBBCCBB"""

现在我想在 python 中创建一个循环,它将只打印 s 中每一行中 p 中给出的位置。

所需的输出将是:

DDA
DDA
DDA
DDA
DDA

现在,这是我的代码:

p=np.loadtxt('positions')
s=np.loadtxt('s')
for i in range (0, len(s)): 
    for i in p:  
        print(line [int(i)], end='')

输出为:DDADDADDADDADDA

如何将此输出转换为:

DDA
DDA
DDA
DDA
DDA

你只需要在单独的行中打印每个迭代,然后使用这样的打印语句

print(line [int(i)], end='\n')

你可以试试这个:

p=np.loadtxt('positions')
s=np.loadtxt('s')
for i in range (0, len(s)): 
    for i in p:  
        print(line [int(i)], end='')
    print()

这样你就可以在外层的末尾添加一个换行符 for-loop