我有一个大型数据文件,其中包含一些小时列,如下所示
0
0
0
0
0
1
1
1
1
阿拉伯数字
阿拉伯数字
3
3 ... ....
这个数据像这样持续到23然后再次从零开始,所以我在这里要做的是从每个相同数字的组中选择第一个值,以便我有这样的输出
0
1
阿拉伯数字
3
四
5
. . .
23
0
1
。
等等,我不确定我的问题是否清楚,这似乎很容易,但我一直在努力做到。请注意,一个小时可以经常重复。
除非我误解了这个问题,否则下面这样的东西应该做你想做的事。
# the function only appends a number to your `final list`,
# if the new number is different than the `final lists`s last element.
def appendIfNewNumber(unqNumbers, number):
if len(unqNumbers) == 0 or number != unqNumbers[-1]:
unqNumbers.append(number)
# instantiate some list
unqNumbers = []
someIterator = [1, 1, 1, 2, 3, 3, 4, 4, 2, 10] # for the sake of example.
# Assuming you are either reading numbers one by one from your file,
# or already have them stored in a list.
# `someIterator` below is practically assumed to contain the elements of
# your first list - the one you'd like to filter.
for number in someIterator: # or list.
appendIfNewNumber(unqNumbers, number)
print(unqNumbers) # --> [1, 2, 3, 4, 2, 10]