有没有办法让for循环使用一些多个条件迭代字符串列表?我正在尝试构建一个for循环,它应该迭代由字符串组成的列表的每个元素,但看起来我的for循环不会对我列表中每个可迭代的每个条件进行操作。
例如,
我有许多字符串,由于它们自己的内容而有所不同,例如(DNA有' T'而不是' U',RNA有' U'而不是' T'和未知(UNK)既没有'也没有' U'或其他任何字符。
输入为['tacaactgatcatt','aagggcagccugggau','gaaaaggcaggcg','guaccaguuu'.'acggggaccgac']
输出应该是DNA序列的类型:
Result: DNA, RNA, UNK, RNA, UNK
我认为我的错误是由于在for循环中滥用了中断句子,但我无法弄清楚如何修复它。
这是我到目前为止所得到的:
seq = list(input('Enter your sequence:').upper())
for obj in seq:
if 'U' not in obj and 'T' in obj:
print('Result: DNA')
break
if 'U' in obj and 'T' not in obj:
print('Result: RNA')
break
else:
print('Result: UNK')
答案 0 :(得分:0)
您正在使用中断语句停止迭代。
seq = ['tacaactgatcatt', 'aagggcagccugggau','gaaaaggcaggcg','guaccaguuu',
'acggggaccgac']
upp_seq = [obj.upper() for obj in seq]
result = []
for obj in upp_seq:
if 'U' not in obj and 'T' in obj:
result.append('DNA')
elif 'U' in obj and 'T' not in obj:
result.append('RNA')
else:
result.append('UNK')
print(result)
# print: ['DNA', 'RNA', 'UNK', 'RNA', 'UNK']