如果我有两个列表:
listA = ['A','B','C','D','B','D','A','C']
listB = ['C','B','A','B','C','A','A','C','D','A','B']
我想如何用listB
,listB[3 to 9]
相同字符之间的元素替换'B','C'
和'D','A'
,listA[1 to 6]
之间的所有元素
因此listB最终将成为:
listB = ['C','B','A','B','C','D','B','D','A','B']
listA最终将成为:
listA = ['A','C']
我创建了一个简单的循环,用于检查'B'、'C'和'D'、'a',并返回它们出现在以下位置的索引:
for i in range(len(gene1)):
if listA[i] == 'B':
if listA[i+1] == 'C':
return I
但是,如果字母序列在字符或长度上发生变化,则这将不起作用
字符串和regular expressions有助于解决此类问题:
并清楚地表明你在做什么
您可以指定给切片;如果对这两个对象都这样做,则可以就地交换这些块:
这首先用
listA[1:7]
片中引用的所有值替换listB[3:10]
片中的所有内容listB
可根据需要调整长度如果您还需要确定起点和终点的位置,则必须首先扫描:
相关问题 更多 >
编程相关推荐