Python基础数据类型——字典

Posted Alice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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())

以上是关于Python基础数据类型——字典的主要内容,如果未能解决你的问题,请参考以下文章

python基础一数据类型之字典

python基础数据类型之字典+集合

python基础之字典

Python基础数据类型——字典

Python基础之字典操作

010-python基础-数据类型-字典