<code>#dict 字典;是一種key:value的資料類型,沒有下标,是無序的。字典可以嵌套任何類型,可以嵌套很多層。</code>
<code>#格式</code>
<code>dict1 </code><code>=</code> <code>{</code>
<code> </code><code>"name1"</code><code>:</code><code>"123"</code><code>,</code>
<code> </code><code>"name2"</code><code>:</code><code>"456"</code><code>,</code>
<code> </code><code>"name4"</code><code>:</code><code>"678"</code>
<code> </code><code># " key":"value"</code>
<code>}</code>
<code>#查詢:</code>
<code>print</code><code>(dict1) </code><code>#查詢字典内容</code>
<code>print</code><code>(dict1[</code><code>"name1"</code><code>]) </code><code>#查詢字典指定value,如果沒有就報錯</code>
<code>print</code><code>(dict1.get(</code><code>"name1"</code><code>)) </code><code>#查詢字典指定value,如果沒有傳回None,建議使用這個查詢value</code>
<code>print</code><code>(dict1.keys()) </code><code>#查詢字典所有的key</code>
<code>print</code><code>(dict1.values()) </code><code>#查詢字典所有的values</code>
<code>#修改</code>
<code>dict1[</code><code>"name1"</code><code>] </code><code>=</code> <code>"444"</code>
<code>print</code><code>(dict1.get(</code><code>"name1"</code><code>))</code>
<code>#添加</code>
<code>dict1[</code><code>"name3"</code><code>] </code><code>=</code> <code>"789"</code> <code>#如果name3的key值不存在,就建立一條新的資料</code>
<code>print</code><code>(dict1)</code>
<code>#删除1</code>
<code>del</code> <code>dict1[</code><code>"name1"</code><code>] </code><code>#删除key name1</code>
<code>#删除2</code>
<code>dict1.pop(</code><code>"name2"</code><code>) </code><code>#删除key name2</code>
<code>#删除3</code>
<code>dict1.popitem() </code><code>#随機删除一個key</code>
<code>#判斷字典裡有沒有key 有傳回True 否則False</code>
<code>print</code><code>(</code><code>"name4"</code> <code>in</code> <code>dict1) </code><code>#python2.X這麼寫dict1.has_key("name1")</code>
<code>#多級字典嵌套及操作</code>
<code>#多級字典嵌套格式,字典可以嵌套任何類型;</code>
<code>china </code><code>=</code> <code>{</code>
<code> </code><code>"北京"</code><code>:{</code><code>"騰訊"</code><code>:[</code><code>"www.tengxun.com"</code><code>,</code><code>"www.qq.com"</code><code>]},</code>
<code> </code><code>"山西"</code><code>:{</code><code>"百度"</code><code>:[</code><code>"www.baidu.com"</code><code>,</code><code>"www.baike.com"</code><code>]},</code>
<code> </code><code>"山東"</code><code>:{</code><code>"搜狗"</code><code>:[</code><code>"www.sougou.com"</code><code>,</code><code>"www.pinyin.com"</code><code>]}</code>
<code>#dict.setdefault</code>
<code>dict1.setdefault(</code><code>"name5"</code><code>,</code><code>"555"</code><code>) </code><code>#去字典裡查詢有沒有key,如果有使用原資料,沒有則建立新記錄</code>
<code>#dict1.update() 合并兩個字典;</code>
<code>#例如:把括号裡的字典合并到update前邊的字典,有相同的key就覆寫,沒有就添加。</code>
<code>info1 </code><code>=</code> <code>{</code><code>"name1"</code><code>:</code><code>"111"</code><code>,</code><code>"name2"</code><code>:</code><code>"222"</code><code>}</code>
<code>info2 </code><code>=</code> <code>{</code><code>"name1"</code><code>:</code><code>"333"</code><code>,</code><code>"name3"</code><code>:</code><code>"333"</code><code>,</code><code>"name4"</code><code>:</code><code>"444"</code><code>}</code>
<code>info1.update(info2)</code>
<code>print</code><code>(info1)</code>
<code>#輸出:{'name1': '333', 'name2': '222', 'name3': '333', 'name4': '444'}</code>
<code>#建立一個新的字典,前邊為key,後邊為value;但是相當于淺copy,三個key共享一個value記憶體位址。</code>
<code>dict2 </code><code>=</code> <code>dict</code><code>.fromkeys([</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>],[</code><code>1</code><code>,[</code><code>111</code><code>,</code><code>222</code><code>],</code><code>"test"</code><code>])</code>
<code>print</code><code>(dict2)</code>
<code>#輸出:{1: [1, [111, 222], 'test'], 2: [1, [111, 222], 'test'], 3: [1, [111, 222], 'test']}</code>
<code>dict2[</code><code>1</code><code>][</code><code>0</code><code>] </code><code>=</code> <code>"555"</code> <code>#改變value的0對應的元素,三個key的value都跟着變了</code>
<code>#輸出:{1: ['555', [111, 222], 'test'], 2: ['555', [111, 222], 'test'], 3: ['555', [111, 222], 'test']}</code>
<code>#循環dict</code>
<code>#循環一 高效</code>
<code>for</code> <code>i </code><code>in</code> <code>dict1:</code>
<code> </code><code>print</code><code>(i,dict1[i]) </code><code>#根據循環出的的key可以求出value</code>
<code>'''</code>
<code>#輸出:</code>
<code> </code><code>name1 123</code>
<code> </code><code>name2 456</code>
<code> </code><code>name4 678</code>
<code>#循環二 比循環一低效,</code>
<code>for</code> <code>k,v </code><code>in</code> <code>dict1.items(): </code><code>#循環的時候會先将字典轉換成清單,清單裡邊是一個個元組,資料大了會慢</code>
<code> </code><code>print</code><code>(k,v)</code>
本文轉自506554897 51CTO部落格,原文連結:http://blog.51cto.com/506554897/1939670,如需轉載請自行聯系原作者