在列表的索引之间计数

时间:2019-02-25 18:12:14

标签: python python-3.x python-3.7

我正在编写一个包含数字列表的函数,我需要找到一种仅对列表的后3个值进行计数的方法,以计算数字1和2的出现。

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

TL; DR:是一种对给定索引之间的列表中出现的值进行计数的方法。

3 个答案:

答案 0 :(得分: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 :(得分: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.

列表具有用于计数值的内置count方法。

答案 2 :(得分: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

我希望这会有用。