为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕后森 2023-02-12 18:56:23
我将整数一个一个地附加到列表中(使用循环),如下所示: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")谢谢!
查看完整描述

4 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

将列表传递给set()将返回一个包含列表中所有唯一值的集合。n您可以使用切片表示法使用以下命令获取最后一个值的列表


n = 3

if len(A) >= n and len(set(A[-n:])) == 1:

    raise Exception("Lots of the latest integers are similar")


查看完整回答
反对 回复 2023-02-12
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

如果您只想检查最后 3 个,那么就可以了。


limit = 3

if len(set(A[-limit:])) == 1:

    raise Exception("Lots of the latest integers are similar")


查看完整回答
反对 回复 2023-02-12
?
冉冉说

TA贡献1877条经验 获得超1个赞

您可以使用 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")

**此代码检查列表的任何其他索引中最后一个元素的出现


查看完整回答
反对 回复 2023-02-12
?
MM们

TA贡献1886条经验 获得超2个赞

lists = [1,4,3,3];

def somewayofcheckingA(lists, a):

    lists.reverse()

    i = 0

    k = lists[0]

    count = 0

    while i < a:

        if(lists[i] == k):

            count= count+1

        i = i+1

    return count

        

print(test(lists, 3))

其中 lists 是列表,a 是您要检查的次数


这个答案很容易理解并利用了基本的循环和条件语句,我认为你应该在尝试其他建议的解决方案之前掌握这些内容,这些解决方案更像 pythonic,但你可能会迷失在其中。


查看完整回答
反对 回复 2023-02-12
  • 4 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信