Python基础数据类型——字典

数字精灵号
• 阅读 1134

一、定义

字典由键及其相应的值组成,这种键-值对成为项(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())
点赞
收藏
评论区
推荐文章
小万哥 小万哥
2年前
Python - 字典2
Python访问字典项您可以通过在方括号内引用其键名来访问字典的项:示例,获取"model"键的值:Pythonthisdict"brand":"Ford","model":"Mustang","year":1964xthisdict,,,,,,,,,看完
Karen110 Karen110
4年前
如何来理解Python中的字典数据类型
大家好,我是IT共享者,人称皮皮。今天给大家讲解下Python中的字典数据类型。一、前言字典是Python中的数据类型,可让将数据存储在键/值对中。二、什么是字典理解?字典理解是创建字典的一种优雅简洁的方法。字典理解优化使用字典理解优化函数。例:字典理解例:squaredictnum:numnumfornuminrange(1,1
Python进阶者 Python进阶者
4年前
如何来理解Python中的字典数据类型
大家好,我是IT共享者,人称皮皮。今天给大家讲解下Python中的字典数据类型。一、前言字典是Python中的数据类型,可让将数据存储在键/值对中。二、什么是字典理解?字典理解是创建字典的一种优雅简洁的方法。字典理解优化使用字典理解优化函数。例:字典理解例:squaredictnum:numnumfornuminrange(1,11)
Bill78 Bill78
4年前
Python 字典常用方法总结
Python字典可存储任意类型对象,如字符串、数字、元组……优点:取值方便,速度快1,创建字典字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。基本语法如下:dict{'Alice':'2341','Beth':'9102','Cecil':'3258'}注意:每个键与值用冒号隔开(:)
陈占占 陈占占
4年前
python 字典
字典(dict):以键值对的方式存在,以大括号为标志、在字典里面键是不能修改的,值可以修改语法格式:字典名{key1:value1,key2:value2,.......}note:是无序的类型,建必须唯一,值不必。索引是以键为下标,不能索引键对应的值,键不能为列表特点:1.键值之间必须用冒号(:)隔开2.项与项之间必须用逗号(,)隔开3.字典中的键必须
Stella981 Stella981
4年前
Key
KeyValue是用一个不可重复的key集合对应可重复的value集合。(典型的例子是字典:通过页码的key值找字的value值)。例子:key1—value1;key2—value2;key3—value3.SortedMap:如果一个Map可以根据key值排序,则称其为SortedMap。(如字典)!!注意数组和集合的区别:数组
Stella981 Stella981
4年前
Python之dict详解
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。本次主要介绍Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等,需要的朋友可以参考下。字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:1.创建字典1234567\
Stella981 Stella981
4年前
C#创建安全的字典(Dictionary)存储结构
  在上面介绍过栈(Stack)的存储结构,接下来介绍另一种存储结构字典(Dictionary)。 字典(Dictionary)里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而值不需要唯一的,键和值都可以是任何类型。字典(Dictionary)是常用于查找和排序的列表。 接下来看一下Dictionary的部分方法和类的底
Stella981 Stella981
4年前
Redis面试:八问字典内部构造与rehash,这谁顶的住啊!
字典是一种用于保存键值对的抽象数据结构,也被称为查找表、映射或关联表。在字典中,一个键(key)可以和一个值(value)进行关联,这些关联的键和值就称之为键值对。抽象数据结构,啥意思?就是可以需要实际的数据结构是实现这个功能。抽象,意味着它这是实现功能的标准,凡是能够完成这些功能的都可以是其实现。redis的字典
小万哥 小万哥
2年前
Python - 字典1
字典用于存储键值对形式的数据。字典是一个有序、可更改的集合,不允许重复。从Python3.7版本开始,字典是有序的。在Python3.6及更早版本中,字典是无序的。字典用花括号编写,具有键和值:示例,创建并打印一个字典:Pythonthisdict"bra
卡里笔记 卡里笔记
5个月前
Python 数据类型入门:数字/字符串/列表 元组/字典/ 集合/字节/布尔,新手能直接用的代码指南
本文介绍了Python中常见的数据类型及其特性。数字类型包括整数、浮点数、布尔值和复数,其中bool是int的子类;字符串支持拼接、切片等操作;元组是不可变序列,定义单元素元组需加逗号;列表是可变序列,支持增删改操作;字典以键值对存储,键必须为不可变类型;集合用于存储无序不重复元素,支持集合运算;布尔类型在Python中表现为True/False,可与数字作比较。文章还比较了type()和isinstance()的区别,并提供了各类型的常用操作示例。
数字精灵号
数字精灵号
Lv1
你就在旁边却感觉隔了一个世纪.
文章
7
粉丝
0
获赞
0