一、定义

字典由键及其相应的值组成,这种键-值对成为项(item)

二、属性

1、字典是一种映射类型,字典用 { } 标识,它是一个无序的键(key):值(value)的汇合;
2、键(key)必须应用不可变类型;
3、在同一个字典中,键(key)必须是惟一的;
4、字典是python惟一内置的映射类型

三、操作

1、拜访字典中的值

  1. 要获取与键相关联的值,可顺次指定字典名和放在方括号内的键

    alien = {'color':'green'}print(alien['color'])
  2. get
    1)办法get为拜访字典提供了宽松的环境,通常试图拜访字典中没有的项,将引发异样 ;
    2)应用get拜访不存在的键时,不会产生异样,返回None;
    3)可指定“默认”值,拜访不存在的键时,将返回“默认”值
    4)如果字典种子哪个蕴含指定的键,get作用于一般字典查找雷同

    x = {}print(x['name'])print(x.get('name'))print(x.get('name','N/A'))

2、增加键-值对

alien['x_position'] = 3alien['y_position'] = 4print(alien)

3、删除键-值对

  1. del
    1)删除的键-值对永远隐没,彻底删除
    2)用del语句时,必须制订字典名和要删除的键
    3)del dict[]无返回值

    del alien['color']print(alien)
  2. pop
    1)dict.pop()有返回值

    d1 = {'x':'1','y':'2'}d1.pop(x)print(d1)
  3. clear()

    # 清空字典,删除所有的字典项alien = {'color':'green'}print(alien.clear())

4、批改字典中的值

#顺次指定字典名、用方括号括起的键和与该键相关联的新值alien['color'] = 'yellow'print(alien)

5、复制

  1. 浅复制 copy()
    a、须要复制的值是可变类型时,须要辨别浅复制和深复制(因为可变类型指向的是同一块内存空间);
    b、须要复制的值是不可变类型时,不辨别浅复制和深复制(指向的内存空间不同)

    x = {'username':'admin'}y = x.copy()y['username'] = 'alice'print(y)print(x)
  2. 深复制 deepcopy()
    深复制时原件不受影响

    # 为防止这种问题,一种方法是执行深复制,即同时复制值及其蕴含的所有值,可应用copy模块中的函数deepcopyfrom copy import deepcopyx = {}x['names']=['amy','daniel']y = x.copy()dy = deepcopy(x)x['name'].append('alice')print(y)print(dy)

6、items
办法items返回一个蕴含所有字典项的列表,其中每个元素都为(key,value)的模式
7、嵌套

  1. 字典列表
    1)将三个字典放在一个列表中

    alien_0 = {'color':'green'}alien_1 = {'color':'red'}alien_2 = {'color':'yellow'}aliens = [alien_0, alien_1, alien_2]for alien in aliens: print(alien)

    2)用range()生成多个alien

    aliens = []# 创立30个绿色的外星人for alien_num in range(30): new_alien = {'color':'green','speed':'low'} aliens.append(new_alien)# 显示前5个for alien in aliens[:5]: print(alien)
  2. 在字典中存储列表

    pizza = { 'crust':'thick', 'toppings':['sweet','extra cheese'],}for topping in pizza['toppings']: print(topping)
  3. 在字典中存储字典

    users = { 'alice':{     'first':'a',     'last':'e', }, 'daniel':{     'first':'d',     'last':'l', },}for username,user_info in users.items(): print('\n USERNAME:'+ username)

8、遍历

  1. 遍历所有的键-值对

    user = { 'username':'alice', 'first':'a', 'last':'e'}for key,value in user.items(): print('\nKEY:'+ key) print('VALUE:'+ value)
  2. 遍历字典中的所有键 keys()
    遍历字典时,会默认遍历所有的键

    user = { 'username':'alice', 'first':'a', 'last':'e'}for key_name in user.keys(): print(key_name.title())
  3. 按程序遍历字典中的所有键 sorted()
    要以特定的程序返回元素,可在for循环中对返回的键进行排序,应用sorted()函数

    user = { 'username':'alice', 'first':'a', 'last':'e'}for name in sorted(user.keys()): print(name.title())
  4. 遍历字典中的所有值 values()

    user = { 'username':'alice', 'first':'a', 'last':'e'}for name in user.values(): print(name.title())