• 10. python字典



    一、什么是字典

    #创建一个字典
    alien_0 = {'color': 'red', 'points': 5}
    
    • 1
    • 2
    1. alien_0就是一个字典
    2. 字典定义使用大括号{}
    3. 字典大括号{}内部包含一系列的键-值对
    4. 键-值对之间,使用逗号分隔
    5. 键-值对内部,由冒号:分隔为两个部分:键:值
    6. 为描述部分,描述该键-值对代表的含义
    7. 为数值部分,描述部分对应的具体内容,可为:数字、字符串、列表、字典
    8. 为描述性短语,一般为字符串,部分有时也为字符串,每个字符串需要单独的引号

    二、访问键-值对

    #创建字典
    alien_0 = {'color': 'red', 'points': 5}
    
    #访问字典
    print(alien_0['color'])
    print(alien_0['points'])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 访问字典数据,使用方括号[]
    2. 方括号[]内部,为的内容

    三、添加、修改键-值对

    #创建字典,因数据较长,分行写
    favorite_languages = {
    	'liming': 'c',	#注意此处不要遗漏逗号
    	'xiaohua': 'python',
    	}	#此处大括号,单独写一行,让大括号更加明显,起到方便阅读和防遗漏作用
    #打印字典
    print(favorite_languages)
    
    #添加键-值对
    favorite_languages['lihong'] = 'java'
    #打印字典
    print(favorite_languages)
    
    #修改字典的内容
    favorite_languages['lihong'] = 'ruby'
    #打印字典
    print(favorite_languages)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    运行结果:
    在这里插入图片描述
    注意,我们添加和修改字典数据的时候,使用的代码如下:

    #添加键-值对
    favorite_languages['lihong'] = 'java'
    #修改字典的内容
    favorite_languages['lihong'] = 'ruby'
    
    • 1
    • 2
    • 3
    • 4
    1. 添加和修改字典内容,使用的代码格式是一样的
    2. 给字典里某个赋值的操作:
      2.1 若该已经存在,则赋值操作修改对应的
      2.2 若该不存在,则赋值操作在字典中添加键-值对

    四、删除键-值对

    4.1 语句del

    alien_0 = {'color': 'red', 'points': 5}
    print(alien_0)
    
    #彻底删除points键值对
    del alien_0['points']
    print(alien_0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    语句del彻底删除了指定键-值对,没有返回。

    4.2 方法pop()

    alien_0 = {'color': 'red', 'points': 5}
    print(alien_0)
    
    #使用方法pop()弹出指定键-值对,返回`键`对应的`值`
    delete = alien_0.pop('points')
    print(delete)
    print(alien_0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    方法pop()弹出键-值对,弹出就是删除,但此处会返回对应的

    五、创建空字典

    有时,我们需要用字典来保存用户输入的数据,或用字典来保存程序运行过程中产生的数据。这两种情况,都要先有一个空的字典,再往里面存放后续产生的数据。

    #创建空字典
    alien_0 = {}
    print(alien_0)
    
    #添加键-值对
    alien_0['color'] = 'red'
    alien_0['points'] = 5
    
    print(alien_0)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行结果:
    在这里插入图片描述

    六、遍历字典

    6.1方法items()

    返回字典中的键-值对

    #创建字典
    user_0 = {
    	'username': 'xiaoming',
    	'first': 'li',
    	'last': 'ming',
    	}
    
    #使用for循环,打印所有键-值对
    for key, value in user_0.items():
    	print('key: ', key, '\t\tvalue: ', value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    运行结果:
    在这里插入图片描述

    1. user_0.items()返回字典中的一个键-值对,将返回给变量key,将返回给变量value
    2. 使用for循环遍历字典,便可以访问字典中所有键-值对

    6.2方法keys()

    返回字典中的

    user_0 = {
    	'username': 'xiaoming',
    	'first': 'li',
    	'last': 'ming',
    	}
    
    #遍历所有的键
    for key in user_0.keys():
    	print(key)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行结果:
    在这里插入图片描述

    1. user_0.keys()只会返回字典中的一个
    2. 使用for循环,便可遍历字典中所有

    6.3方法values()

    返回字典中的

    user_0 = {
    	'username': 'xiaoming',
    	'first': 'li',
    	'last': 'ming',
    	}
    
    #遍历所有的键
    for value in user_0.values():
    	print(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行结果:
    在这里插入图片描述

    1. user_0.values()返回字典中的一个
    2. 使用for循环,便可以遍历字典中所有

    七、嵌套

    7.1 字典列表

    #创建三个字典
    alien_0 = {'color': 'green', 'points': 5}
    alien_1 = {'color': 'yellow', 'points': 10}
    alien_2 = {'color': 'red', 'points': 15}
    
    #将三个字典存入列表中,该列表称为:字典列表
    aliens = [alien_0, alien_1, alien_2]
    
    #遍历列表
    for alien in aliens:
    	print(alien)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果:
    在这里插入图片描述

    1. 列表中可存放任意类型数据,当然也可以将字典存入列表
    2. 字典列表:(只含有)字典(的)列表

    7.2 在字典中存储列表

    有时,一个的后面,对应着多个
    比如:描述pizza的配料时,因配料不仅一种,故需要使用列表。

    #创建披萨的内外用料字典
    pizza = {
    	'crust': 'thick',
    	#因配料较多,需使用列表存放
    	'toppings': ['mushrooms', 'extra cheese'],
    	}
    
    #描述披萨
    print('you ordered a ' + pizza['crust'] + '-crust pizza, with the following toppings:')
    
    #遍历配料列表
    for topping in pizza['toppings']:
    	print('\t' + topping)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    运行结果:
    在这里插入图片描述

    7.3 在字典中存储字典

    有时,键-值对中的中包含信息较多、教复杂,需要使用新的键-值对来描述。

    #创建字典,键-值对为:用户名:用户信息
    #用户信息:包含数据较多,信息分为三个键-值对,采用字典来组织信息
    users = {
    	'xiaoming': {
    		'first': 'li',
    		'last': 'ming',
    		'location': 'kunming',
    		},
    	'lili': {
    		'first': 'li',
    		'last': 'li',
    		'location': 'dali',
    		},
    	}
    
    #使用for循环,遍历用户信息
    for username, user_info in users.items():
    	#打印用户名
    	print('username: ', username)
    	#从用户信息中,获取用户的姓和名,拼接为全名
    	full_name = user_info['first'] + user_info['last']
    	#从用户信息中,获取用户居住地
    	location = user_info['location']
    
    	#打印用户完整信息
    	print('\tFull_name: ', full_name)
    	print('\tLocation: ', location)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    运行结果:
    在这里插入图片描述

  • 相关阅读:
    clazzToJsonDefault java 实体 to json 字符串
    BIM+物联网应用,可以解决生活中的诸多问题?
    .NET 6+Semantic Kernel快速接入OpenAI接口
    CAPL函数 Test Node中TestWait xxx 常用函数
    GLSL-WebGL着色器语言语法详解
    操作系统实现-中断及任务调度
    java spring boot 字符串判空
    docker部署rabbitMQ
    Redis高可用的主从复制、哨兵、cluster集群
    MindSpore: mindspore.dataset.CocoDataset返回的dataset的‘category_id’数据是一维向量还是标量
  • 原文地址:https://blog.csdn.net/m0_48922815/article/details/130899630