note 11 字典
生活随笔
收集整理的這篇文章主要介紹了
note 11 字典
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字典 Dictionary
+什么是字典?
+一系列的"鍵-值(key-value)"對
+通過"鍵"查找對應的"值"
+類似紙質字典,通過單詞索引表找到其相應的定義
C++:map
Java:HashTable or HashMap
例如:電話本
創建字典
使用 { } 創建字典 使用 : 指明 鍵:值 對my_dict = {'John':86411234,'Bob':86419453,'Mike':86412387}鍵必須是 不可變 的且不重復,值可以是 任意 類型訪問字典
使用 [ ] 運算符,鍵作為索引print my_dict['Bob']print my_dict['Tom']#WRONG!增加一個新的對my——dict['Tom'] = 86417649字典中鍵是無序的
字典運算符和方法
len(my_dict)
求字典中鍵-值對的數量
key in my_dict
快速判斷key是否為字典中的鍵:O(1) 等價于my_dict.has_key(key)時間復雜度為常數,不隨字典規模變化for key in my_dict:
枚舉字典中的鍵,注:鍵是無序的更多方法
my_dict.items()- 返回全部的鍵-值對 以列表形式 my_dict.keys()- 全部的鍵 my_dict.values()- 全部的值 my_dict.clear()- 清空字典+字母計數
讀取一個字符串,計算每個字母出現的個數
1.生成26個變量,代表每個字母出現的個數
2.生成具有26個元素的列表,將每個字母轉化為相應的索引值,如a->0,b->1,...
s = 'asffghjljkl'lst = [0] * 26for i in s:lst[ord(i) - 97] += 1print lst3.生成一個字典,字母做鍵,對應出現的次數做值
s = 'asffghjljkl'd = {}for i in s:if i in d:d[i] += 1else :d[i] = 1print d+單詞計數
讀取小說“emma.txt”,打印前10個最常見單詞
是否還能直觀的將每個單詞轉化為相應的數字?
sort默認升序
f = open('emma.txt')word_freq = {}for line in f:words = line.strip().split()for word in words:if word in word_freq:word_freq[word] += 1else:word_freq[word] = 1freq_word = [] for word,freq in word_freq.items():freq_word.append((freq,word))freq_word.sort(reverse = True)for freq,word in freq_word[:10]:print wordf.close()+翻轉字典
生成一個新字典,其鍵為原字典的值,值為原字典的鍵
同一個值,可能對應多個鍵,需要用列表存儲
轉載于:https://www.cnblogs.com/OceanF/p/10781018.html
總結
以上是生活随笔為你收集整理的note 11 字典的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10-Flink集群的高可用(搭建篇补充
- 下一篇: jquery text html wid