亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我的代碼不檢查列表中的每個值?

為什么我的代碼不檢查列表中的每個值?

搖曳的薔薇 2023-09-12 17:21:59
我試圖檢查某個值連續重復多少次,但遇到了一個問題,我的代碼在沒有檢查的情況下留下了最后一個數字。Ai = input()arr = [int(x) for x in Ai.split()]c = 0frozen_num = arr[0]for i in range(0,len(arr)):    print(arr)    if frozen_num == arr[0]:        arr.remove(arr[0])        c+=1    else:        frozen_num = arr[0]                    print(c)假設我輸入: 1 1 1 1 5 5 我的代碼將給出輸出 5 而不是 6我希望你明白我在說什么。我對 python 還很陌生,而且這段代碼還沒有完成,稍后的數字將被附加,所以我得到輸出:[4, 2],因為“1”重復 4 次,“5”重復 2 次。編輯 - 我不小心寫了 6 和 7,而不是 5 和 6。
查看完整描述

2 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

您可以使用該Counter模塊Collections的 來測量不同數字的所有出現次數。


from collections import Counter

arr = list(Counter(input().split()).values())

print(arr)

輸入為的輸出1 1 1 1 5 5:


1 1 1 1 5 5

[4, 2]


查看完整回答
反對 回復 2023-09-12
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

如果您想堅持使用您的方法而不使用外部庫,您可以添加一個 if 語句來檢測何時到達數組的最后一個元素,并以與其他元素不同的方式處理它:


Ai=input()

arr = [int(x) for x in Ai.split()]

L=[]

c = 0

frozen_num = arr[0]

for i in range(0, len(arr)+1):

    print(arr)

    if len(arr)==1: #If we reached the end of the array

        if frozen_num == arr[0]: #if the last element of arr is the same as the previous one

            c+=1

            L.append(c)

        else: #if the last element is different, just append 1 to the end of the list

            L.append(c)

            L.append(1) 

    elif frozen_num == arr[0]:

        arr.remove(arr[0])

        c += 1

    else:

        L.append(c)

        c=0

        frozen_num = arr[0]

print(L)

輸入


[5,5,5,6,6,1]

輸出


[3,2,1]


查看完整回答
反對 回復 2023-09-12
  • 2 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號