我正在编写一个包含数字列表的函数,我需要找到一种方法来计算数字1和2的出现次数,仅用于列表的最后3个值。
我显然知道.count()
函数,但我想知道是否有一种方法只能在给定的索引之间使用,在这种情况下索引将是((len(history-3), (len(history))
,history
是仅包含值1
和2
的列表。
TL; DR:什么是计算给定索引之间列表中值的出现的方法。
正如Rocky Li建议你可以通过切片history[-3:]
获得列表的最后三个元素。然后,您可以使用切片上的count函数来获取列表中最后三个点中的1
和2
的计数。
例如:
>>> 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
使用负切片来获取最后的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
方法来计算值。
您可以切片列表然后计数
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
我希望这有用。