「シーケンス」という単語の大まかな定義を使用すると、2,000 を超える要素 (シーケンス番号) を持つリストがあり、短いシーケンスごとに最大の番号を別のリストに追加したいと考えています。私のデータの代表的で単純化された例を次に示します。
# seqNums = ['01', '02', '01', '02', '03', '01', '01', '02', '03', '04', '01', '02', '03', '01', '02', '03', '04', '05']
この例では、要素 1、4、5、9、12、および 17 を新しいリストに追加して、以下の「newSeqNums」のようにします。
# newSeqNums = ['02', '03', '01', '04', '03', '05']
私はさまざまなことを試しましたが、以下のコードはリストを先読みできるクローゼットですが、機能しません。助言がありますか?
seqNums = ['01', '02', '01', '02', '03', '01', '01', '02', '03', '04', '01', '02', '03', '01', '02', '03', '04', '05']
newSeqNums = []
def readAhead(seqNums):
for item in seqNums:
yield item
yield None
items = readAhead(seqNums)
item = items.next() # get first item
while item:
nextItem = items.next() # get next item
if item < nextItem:
pass
else:
newSeqNums.append(nextItem)
item = items.next()
print newSeqNums
print len(newSeqNums)
'''
# output for above code
['01', '01']
2
'''