[問題] 關於dict中get的用法

看板Python作者時間14年前 (2011/04/20 01:19), 編輯推噓4(405)
留言9則, 2人參與, 最新討論串1/1
因為是剛接觸程式設計和Python所以對於整個語法架構還不是相當的熟悉 遇到一個問題想半天也想不出一個比較順的做法 想跟板上的前輩們請教一下 下面這個function def histogram(s): d = dict() for c in s: if c not in d: d[c] = 1 else: d[c] += 1 return d (s是用做輸入string) 要怎麼用get來改寫? 我的疑問是在於 get本身是使用在dict中的method 這個function是直接將string輸入進去 在轉換成dict的過程當中 利用for迴圈把要記數的項目一次一次加上去 最後完成dict之後 也就是要獲得的資訊 (這樣的說法不知道正不正確...??) 但是如果要用get的話 不就是要先把他轉成dict的形態之後 再用get去一次一次截取他的值?! 這個地方的邏輯我想半天也想不出來到底是怎樣.... 跪求板上的前輩們能夠幫助我解除這個疑惑阿! 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.80.34

04/20 01:48, , 1F
from collections import *
04/20 01:48, 1F

04/20 01:49, , 2F
d = Counter(s) # 以上完全文不對題 XD
04/20 01:49, 2F

04/20 01:51, , 3F
居然是高中同學ㄎㄎ 但是我還是不懂你的意思哈哈...
04/20 01:51, 3F

04/20 01:54, , 4F
如果你只是要把所有值印出來的話,這樣做:
04/20 01:54, 4F

04/20 01:55, , 5F
for c in d: print d.get(c) # 或 print d[c]
04/20 01:55, 5F

04/20 01:59, , 6F
for c in d 也相當於 for c in d.keys()
04/20 01:59, 6F

04/20 02:03, , 7F
我後來找到解答了哈哈
04/20 02:03, 7F

04/20 02:07, , 8F
他是用for c in s: d[c]=d.get(c,0)+1 應該是這樣吧..?
04/20 02:07, 8F
文章代碼(AID): #1DhSGbsr (Python)
文章代碼(AID): #1DhSGbsr (Python)