日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

note 11 字典

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 lst

3.生成一個字典,字母做鍵,對應出現的次數做值

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()

+翻轉字典
生成一個新字典,其鍵為原字典的值,值為原字典的鍵
同一個值,可能對應多個鍵,需要用列表存儲

d1 = {'Zhang':123,'Wang':456,'Li':123,'Zhao':456} d2 = {}for name,room in d1.items():if room in d2:d2[room].append(name)else:d2[room] = [name]print d2

轉載于:https://www.cnblogs.com/OceanF/p/10781018.html

總結

以上是生活随笔為你收集整理的note 11 字典的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。