如何检查列表中最后一个元素中有多少在 python 中是相等的?

我将整数一个一个地附加到列表中(使用循环),如下所示:

A.append(x)其中 x 是一个整数,最终给出例如:

A = [4, 8, 2, 4, 3, 7, 7, 7]

在每个循环中,即在将每个整数添加到数组末尾之后,我想检查是否已将相同的整数添加了一定次数(例如,在下面的示例中为 3 次),如果存在则抛出异常所以。

伪代码:

if somewayofcheckingA == 3:
    raise Exception("Lots of the latest integers are similar")

我可以执行以下操作,但如果我想检查 100 次重复,那么显然代码会变得一团糟。

if A[-1] == A[-2] and A[-2] == A[-3]: 
   raise Exception("Lots of the latest integers are similar")

谢谢!


慕后森
浏览 132回答 4
4回答

30秒到达战场

将列表传递给set()将返回一个包含列表中所有唯一值的集合。n您可以使用切片表示法使用以下命令获取最后一个值的列表n = 3if len(A) >= n and len(set(A[-n:])) == 1:    raise Exception("Lots of the latest integers are similar")

芜湖不芜

如果您只想检查最后 3 个,那么就可以了。limit = 3if len(set(A[-limit:])) == 1:    raise Exception("Lots of the latest integers are similar")

冉冉说

您可以使用 collections.Counter() 来计算最后一个元素出现的次数。例如:occurrences = collections.Counter(A)if occurrences[A[-1]] >= 3:   raise Exception("Lots of the latest integers are similar")或者更简单的方法if A.count(A[-1]) >= 3:   raise Exception("Lots of the latest integers are similar")**此代码检查列表的任何其他索引中最后一个元素的出现

MM们

lists = [1,4,3,3];def somewayofcheckingA(lists, a):&nbsp; &nbsp; lists.reverse()&nbsp; &nbsp; i = 0&nbsp; &nbsp; k = lists[0]&nbsp; &nbsp; count = 0&nbsp; &nbsp; while i < a:&nbsp; &nbsp; &nbsp; &nbsp; if(lists[i] == k):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count= count+1&nbsp; &nbsp; &nbsp; &nbsp; i = i+1&nbsp; &nbsp; return count&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print(test(lists, 3))其中 lists 是列表,a 是您要检查的次数这个答案很容易理解并利用了基本的循环和条件语句,我认为你应该在尝试其他建议的解决方案之前掌握这些内容,这些解决方案更像 pythonic,但你可能会迷失在其中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python