作者ran ()
看板Python
標題[問題] 關於dict中get的用法
時間Wed Apr 20 01:19:30 2011
因為是剛接觸程式設計和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