乐趣区

关于python:Python基础数据类型字典

一、定义

字典由键及其相应的值组成,这种键 - 值对成为项(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'] = 3
alien['y_position'] = 4
print(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 模块中的函数 deepcopy
    from copy import deepcopy
    x = {}
    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())
退出移动版