我有两个具有相同len
的列表。在
list1=[0, 1, 1, 1, 0, 0, 0, 1]
list2=['ATT', 'TTC', 'TCC', 'CCC', 'CCA', 'CAA', 'AAA', 'AAG']
注:
(一)。每个列表中的元素数不同,但这两个列表始终具有相同的len
。在
(二)。list1
只包含整数0
,或{0
s,只能包含1s
,或者同时包含0s
和{
3)中。list2
只包含长度相同的字符串,而且对于每个字符串k
(k
是一个索引>0
),list2[k][:-1]=list2[k-1][1:]
,这意味着如果k=2, list[k]='TCC', list[k][:-1]='TC', list[k-1]='TTC', list[k-1][1:]='TC'
。因此,list2[k][:-1]=list2[k-1][1:]
。在
我想根据list1
中的对应元素对list2
中的字符串进行分组(对应的:在list1
和{index
中的元素)。如果list1[n]==1
,那么list2[n-1]+list2[n][-1]
。如果list1[n]==0, and list1[n+1]==0, do nothing
。在
例如,list2
中第一个整数1的对应字符串是'TTC'
,然后'ATT'
,而{'TCC'
,然后'ATTC'
(注意,已经合并了),而{list1[3]==1
,'ATTCC'
和{list1[7]==1
,那么'AAG' ('AAG'=list2[7])
需要与其前一个字符串'AAA'
分组,这两个变成{n=0
,和{list1[4]==0
,和{'CCA'
保持不变。list1[5]==0
,而{
改造后,
这是我想要的输出。
newlist2=['ATTCCC', 'CCA', 'CAA', 'AAAG']
显然,代码不正确。在
^{pr2}$
这是你想要的吗?公司名称:
输出:
^{pr2}$我循环查看您的列表,应用您的方法,并在末尾跟踪需要删除的索引,然后创建一个没有不必要索引的新列表。在
您可以将
itertools.groupby
与functools.reduce
一起使用:输出:
^{pr2}$相关问题 更多 >
编程相关推荐