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

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

另一個列表中值列表的頻率總和

另一個列表中值列表的頻率總和

九州編程 2021-12-21 16:57:35
我有兩個列表,我想計算另一個列表中一個值列表的頻率總和。a = [1,4,5]我想以有效的方式計算 a 在 b 中的頻率總和:b = [2,1,4,1,5,6,3,2]輸出應該是 4,即 2+1+1
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

看起來你需要。


a = [1,4,5]

b = [2,1,4,1,5,6,3,2]


print(sum(b.count(i) for i in a))

輸出:


4


查看完整回答
反對 回復 2021-12-21
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

您可以使用集合中的計數器:


from collections import Counter


c = Counter(b)

sum(c[i] for i in a)

輸出:


4


查看完整回答
反對 回復 2021-12-21
?
回首憶惘然

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

你可以這樣做,在每個列表上只迭代一次:


from collections import Counter


a = [1,4,5]

b = [2,1,4,1,5,6,3,2]


counter = Counter(b)

res = sum(counter[value] for value in a)

print(res)

# 4

Counter 只會在 上b迭代一次,然后我們迭代一次a以對相關計數求和,保持復雜度為 O(len(a) + len(b))。


sum(b.count(val) for val in a)但是,像 的方法將是 O(len(a) * len(b)),因為count必須b為 的每個項目再次迭代a。


查看完整回答
反對 回復 2021-12-21
  • 3 回答
  • 0 關注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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