如何选择重复记录的数字的第一个值



我有一个大型数据文件,其中包含一些小时列,如下所示

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]

最新更新