字典是無序的對象集合,使用鍵來存取索引,鍵必須是惟一的,值可以存取任何數(shù)據(jù)類型,但是鍵只能使用字符串、數(shù)字或元組,使用值來存取數(shù)據(jù),通常用于存儲描述一個物體的相關信息。 創(chuàng)建字典name = {'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} 注:字典由多個鍵及對應的值組成,鍵和值使用冒號分割,字典中鍵的值必須唯一,而值不需要,另外,字典中的鍵必須是不可變的,如:字符串,元組和數(shù)字。、 訪問字典age={'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} 修改字典age={'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} 刪除字典刪除字典可以刪除對應的鍵值對,也可以刪除整個字典。 age = {'zhangsan': 12, 'lisi': 15, 'boxiaoyuan': 22} 循環(huán)遍歷xiaoming = {"name": "xiaoming", "age": 18} 在實際開發(fā)中,由于字典中每一個鍵值對保存數(shù)據(jù)的類型是不同的,所以針對字典的循環(huán)遍歷需求并不是很多。 字典常用的方法# -*- coding:utf-8 -*- import copy age = {'zhangsan': 12, 'lisi': 15, 'boxiaoyuan': 22} age.pop('boxiaoyuan') # 移出列表中的元素 print(age) # {'zhangsan': 12, 'lisi': 15} print(age.get('lisi')) # 15,獲取列表中的元素 print(age.items()) # dict_items([('zhangsan', 12), ('lisi', 15)]),返回可遍歷的元組數(shù)組 print(age.keys()) # dict_keys(['zhangsan', 'lisi']),返回字典的所有鍵 print(age.setdefault('wangwu')) # None,根據(jù)指定鍵獲取值,如果沒有則在字典中新增加鍵并設置默認值None,如果存在值,則顯示出來 print(age.setdefault('zhangsan')) # 12 print(age) # {'zhangsan': 12, 'wangwu': None, 'lisi': 15} age2 = {'bokeyuan': 44} age.update(age2) # 用age2的值更新age的值 print(age) # {'zhangsan': 12, 'wangwu': None, 'lisi': 15, 'bokeyuan': 44} print(age.values()) # dict_values([12, None, 15, 44]),返回字典中所有值 D1 = {'name': 'zhangsan', 'method': ['run', 'eat', 'drink']} # 原始數(shù)據(jù) D2 = D1 # 直接引用,D1和D2指向同一對象 D3 = D1.copy() # 淺拷貝,復制時只會復制父對象,不會復制對象內部的子對象 D4 = copy.deepcopy(D1) # 深拷貝,復制父對象和子對象 D1['name'] = 'lisi' D1['method'].remove('eat') print('原始數(shù)據(jù):',{'name': 'zhangsan', 'method': ['run', 'eat', 'drink']}) print('D1修改后數(shù)據(jù):', D1) # {'name': 'lisi', 'method': ['run', 'drink']} print('D2數(shù)據(jù):', D2) # {'name': 'lisi', 'method': ['run', 'drink']} print('淺拷貝數(shù)據(jù):', D3) # {'name': 'zhangsan', 'method': ['run', 'drink']} print('深拷貝數(shù)據(jù):', D4) # {'name': 'zhangsan', 'method': ['run', 'eat', 'drink']} # 可見,復制后對于原字典內部的子對象(方括號括起的元素)進行操作,淺拷貝字典會受到影響,深拷貝不會受到影響。 lists = [1, 2, 3, 4] dicts = dict.fromkeys(lists) # 創(chuàng)建一個新的字典,seq為字典的鍵,value為鍵對應的初始值,默認為None print(dicts) # {1: None, 2: None, 3: None, 4: None} dicts = dict.fromkeys(lists, 10) print(dicts) # {1: 10, 2: 10, 3: 10, 4: 10} print("zhangsan在字典中", 'zhangsan' in age) # True,key in dict用來判斷鍵是否在字典中,在的話,返回True,不在,返回False age.clear() # 清除字典中所有的值 print(age) # {} 字典的其他說明a)字典的格式化輸出 age = {'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} b)字典和列表的區(qū)別 字典的特點:查找和插入的速度非常快,但是需要占用大量內存,內存浪費較多。 列表的特點:查找和插入的速度隨著元素的增加而減慢,占用空間小。 來源:http://www./content-1-192551.html |
|