我正在编写一个包含数字列表的函数,我需要找到一种仅对列表的后3个值进行计数的方法,以计算数字1和2的出现。
我显然知道.count()
函数,但是我想知道是否有一种方法只能在给定索引之间使用它,在这种情况下,索引将是((len(history-3), (len(history))
,{{1} }是仅包含值history
和1
的列表。
TL; DR:是一种对给定索引之间的列表中出现的值进行计数的方法。
答案 0 :(得分:2)
正如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
答案 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
我希望这会有用。