看板 Python 關於我們 聯絡資訊
因為是剛接觸程式設計和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
COLDTURNIP:from collections import * 04/20 01:48
COLDTURNIP:d = Counter(s) # 以上完全文不對題 XD 04/20 01:49
ran:居然是高中同學ㄎㄎ 但是我還是不懂你的意思哈哈... 04/20 01:51
COLDTURNIP:如果你只是要把所有值印出來的話,這樣做: 04/20 01:54
COLDTURNIP:for c in d: print d.get(c) # 或 print d[c] 04/20 01:55
COLDTURNIP:for c in d 也相當於 for c in d.keys() 04/20 01:59
ran:我後來找到解答了哈哈 04/20 02:03
ran:他是用for c in s: d[c]=d.get(c,0)+1 應該是這樣吧..? 04/20 02:07