在列表的索引之间计数

问题描述 投票:0回答:3

我正在编写一个包含数字列表的函数,我需要找到一种方法来计算数字1和2的出现次数,仅用于列表的最后3个值。

我显然知道.count()函数,但我想知道是否有一种方法只能在给定的索引之间使用,在这种情况下索引将是((len(history-3), (len(history))history是仅包含值12的列表。

TL; DR:什么是计算给定索引之间列表中值的出现的方法。

python python-3.x python-3.7
3个回答
2
投票

正如Rocky Li建议你可以通过切片history[-3:]获得列表的最后三个元素。然后,您可以使用切片上的count函数来获取列表中最后三个点中的12的计数。

例如:

>>> history = [1, 2, 1, 2, 1, 2, 1, 2, 1]
>>> count_1 = history[-3:].count(1)
>>> count_2 = history[-3:].count(2)
>>> count_1
2
>>> count_2
1

1
投票

使用负切片来获取最后的n值并使用count()计数。

lst[-3:].count(2) # counts number of 2 from last three elements of list lst.
lst[-3:].count(1) # counts number of 1 from last three elements of list lst.

List有内置的count方法来计算值。


0
投票

您可以切片列表然后计数

arr = [2,1,3,3]
arr[-3:].count(3) # 2

并且您可以使用指示here的指数完全相同

arr[start:stop].count(3)  # items start through stop-1
arr[start:].count(3)      # items start through the rest of the array
arr[:stop].count(3)       # items from the beginning through stop-1
arr[:].count(3)           # a copy of the whole array

我希望这有用。

© www.soinside.com 2019 - 2024. All rights reserved.