Python根据条件遍历列表和计数项
假设我有一个Python列表,如下所示Python根据条件遍历列表和计数项,python,list,Python,List,假设我有一个Python列表,如下所示 list2 = list('ABCDCBEGHGWAOUOV') ['A', 'B', 'C', 'D', 'C', 'B', 'E', 'G', 'H', 'G', 'W', 'A', 'O', 'U', 'O', 'V'] 在第5点遍历列表时,我看到“C”再次出现。所以直到'D'它是+4和-1,因为它回来了 A->B->C->D +3 C<-D -1 B<-C -1 B->E->G->H +3 G<
list2 = list('ABCDCBEGHGWAOUOV')
['A', 'B', 'C', 'D', 'C', 'B', 'E', 'G', 'H', 'G', 'W', 'A', 'O', 'U', 'O', 'V']
在第5点遍历列表时,我看到“C”再次出现。所以直到'D'它是+4和-1,因为它回来了
A->B->C->D +3
C<-D -1
B<-C -1
B->E->G->H +3
G<-H -1
G->W +1
A<-W -4 etc...
我不确定预期输出是什么,或者这些数字背后的规则是什么。这没什么意义:
AB->C->D+4
:你计算节点数吗?但是这里c您能更详细地解释一下您想要实现什么吗?预期的结果是什么?一份数字清单?像数字一样的分数?华夫饼?@Tobias我在试图理解一些遍历模式。@timgeb:Scores的列表是-1
,因为一个项目再次出现
,或者因为一个项目小于前一个项目?另外,sum(列表2中的i为1)
没有任何作用,它没有被保留或使用-它的用途是什么?对于您提供的输入,list2
您希望list1
看起来是什么样子?嘿,怪人。感谢您的概念,实际上我正在尝试理解一些遍历模式:)如果您在list2中绘制模式并进行检查,这个问题就不会像现在这样愚蠢:)
list1 = []
for item in list2:
if item in list1:
sum(1 for i in list2)
else:
list1.append(item)
from itertools import islice
def get_it(list2):
moves = []
buffer = []
prev = list2[0]
for current in islice(list2, 1, None):
el = 2 * (current > prev) - 1
if buffer and el != buffer[0]:
moves.append(sum(buffer))
buffer = []
buffer.append(el)
prev = current
if buffer:
moves.append(sum(buffer))
return moves