【发布时间】:2013-07-06 13:17:44
【问题描述】:
使用“序列”一词的松散定义,我有一个包含 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
'''
【问题讨论】:
标签: list python-2.7 elements next yield