Python基础教程:字典和Json
字典是鍵/值對構成的集合,字典通過大括號來創建,字典的鍵是字符串,而值可以是任何數據對象。
字典有兩個重要的特征:
- 字典是無序的,字典項沒有特定的順序,只能通過鍵來獲取值;
- 字典是可變的,支持原處修改鍵的值;
- 字典是作為散列表來實現的,可增長,搜索非常快速;
- 和列表一樣,字典存儲的是對象的引用,不是拷貝。
創建字典
創建空的字典:
>>> d={}創建包含兩個項目的字典:
>>> d={'name':'vic','age':28}創建包含嵌套類型的字典:
>>> d={'student':{'name':'vic','age':28}}通過dict函數來創建字典:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> d=dict(name='vic',age=28) >>> d {'name': 'vic', 'age': 28}字典解析
使用字典解析,可以使用迭代器來生成字典:
>>> d={x:x**2 for x in range(0,5)} >>> d {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}引用字典的值
通過鍵來引用字典的值
>>> d['name'] 'vic' >>> d['age'] 28或者使用dict.get(key, default)來獲取鍵對應的值,其中default參數的作用是:當不存在鍵時,返回default作為該鍵的值:
>>> d.get('name') 'vic' >>> d.get('nam','jim') 'jim'字典操作
字典的基本操作有:
- len(dict):字典項的數量,或者字典鍵的數量
- dict.keys():所有字典鍵的集合
- dict.values():所有字典值得集合
- dict.items():字典項(鍵/值對)的集合
- list(dict.keys()):把所有字典鍵轉換為列表
- list(dict.values()):把所有字典鍵的值轉換為列表
- d[key],d.get(key):根據字典的鍵獲取值
- key in dict:檢查該key是否是字典的鍵
1,添加/修改字典項
如果字典中不存在Key,那么添加該Key/Value對;如果存在該Key,那么修改該Key的值。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> d=dict(name='vic',age=28) >>> d['sex']='male' {'name': 'vic', 'age': 28, 'sex': 'male'} >>> >>> d['sex']='man' {'name': 'vic', 'age': 28, 'sex': 'man'}2,刪除字典項
dict.pop(key) 用于刪除鍵為key的字典項
>>> d.pop('sex') 'man' >>> d {'name': 'vic', 'age': 28}或者使用 del dict[key]來刪除鍵為key的字典項:
>>> del d['sex']3,合并字典
dict.update(dict2),把字典dict2合并到dict中
>>> d.update({'tel':'120'}) {'name': 'vic', 'age': 28, 'tel': '120'}4,復制字典
dict.copy()獲得字典的一個深拷貝(deep copy)對象,深拷貝就是增加一個指針并且申請一個新的內存,使這個增加的指針指向這個新的內存。
dict2=dict:獲得字典的一個淺拷貝(shallow copy)對象,淺拷貝只是增加了一個指針指向已經存在的內存。
例如,深拷貝對象和原對象,指向不同的內存空間,修改任意一個字典,不會影響另外一個字典:
>>> d=dict(name='vic',age=28) >>> dc=d.copy() # deep copy >>> dc['tel']=120 >>> d {'name': 'vic', 'age': 28} >>> dc {'name': 'vic', 'age': 28, 'tel': 120}而淺拷貝對象和原對象指向相同的內存空間,修改任意一個字典,另一個字典也會修改:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> d=dict(name='vic',age=28) >>> sc=d # shallow copy >>> sc['tel']=110 >>> sc {'name': 'vic', 'age': 28, 'tel': 110} >>> d {'name': 'vic', 'age': 28, 'tel': 110}JSON結構
Python中的json對象實際是一個字典結構,用于存儲和交換信息,導入json模塊:
import json1,把字符串轉換為json
json的load()方法用于把josn格式的字符串轉換為json對象,這實際上是一個字典結構:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' json_string= '{ "name":"John", "age":30, "city":"New York"}' # parse string to json json_obj = json.loads(json_string)2,把字典轉換為json字符串
json的dumps()函數用于把字典結構轉換為json格式的字符串。
x = {"name": "John","age": 30,"city": "New York" } # convert dict into JSON string: json_string = json.dumps(x)總結
以上是生活随笔為你收集整理的Python基础教程:字典和Json的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础教程:类和对象
- 下一篇: Python基础教程:迭代和解析