• python数据类型之字典操作


    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
    一、创建字典
    字典由key和value成对组成。基本语法如下:

    infos = {"name":"妞妞","sex":"女","addr":"河南","age":"20"}

    也可如此创建字典

    dict1 = { 'abc': 456 }
    dict2 = { 'abc': 123, 98.6: 37 }

    注意:
    每个key与value用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
    key必须独一无二,但value则不必。
    value可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

    二、访问字典中的值

    (1)使用get()方法访问字典中的值,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 print(infos.get("name")) # 打印key为name的value
    3 print(infos.get("n"))#如果取不到这个key的话,就是None
    4 
    5 #以上运行结果是:
    6 妞妞7 None

    如果取不到key的话,就传入默认值:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 print(infos.get("n", 110))  # 如果取不到这个key的话,默认就是110
    3 
    4 #以上运行结果是:
    5 110

    (2)直接使用key的值进行获取对应的value,如下:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 print(infos["age"])
    3 
    4 #以上运行结果是:
    5 20

    三、向字典中增加key

    (1)第一种方法,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 infos["phone"]=18888888888 #增加一个key
    3 print(infos)
    4 
    5 #以上运行结果是:
    6 {'name': '妞妞', 'sex': '', 'addr': '河南', 'age': '20', 'phone': 18888888888}

    使用这种方法,如果key存在的话,会修改原来key里面对应的值,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 infos["name"]="袁泉" #如果key存在的话,会修改原来key里面对应的值
    3 print(infos)
    4 
    5 #以上运行结果是:
    6 {'name': '袁泉', 'sex': '', 'addr': '河南', 'age': '20'}

    (2)使用setdefault()方法增加key,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 infos["phone"]=18888888888 #增加一个key
    3 infos.setdefault("xiaojinku","2000w") #增加xiaojinku对应的value是2000w
    4 print(infos)
    5 
    6 #以上运行结果是:
    7 {'name': '妞妞', 'sex': '', 'addr': '河南', 'age': '20', 'phone': 18888888888, 'xiaojinku': '2000w'}

    如果增加的key已经存在的话,不会修改原来的值,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 infos.setdefault("name","夏雨")#如果key存在的话,不会修改原来key里面的值
    3 print(infos)
    4 
    5 #以上运行结果是:
    6 {'name': '妞妞', 'sex': '', 'addr': '河南', 'age': '20'}

     四、删除字典中的值

    (1)指定key来删除,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 infos.pop("name")# 指定key来删除
    3 print(infos)
    4 
    5 #以上运行结果是:
    6 {'sex': '', 'addr': '河南', 'age': '20'}

    (2)使用popitem()方法随机删除一个key,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20"}
    2 infos.popitem()#随机删除一个key
    3 print(infos)
    4 
    5 #以上运行结果是:
    6 {'name': '妞妞', 'sex': '', 'addr': '河南'} #结果随机删除了age

    (3)使用del 方法指定key进行删除,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20","phone":"18888888888"}
    2 del infos["phone"] #指定key来删除
    3 print(infos)
    4 
    5 #以上运行结果是:
    6 {'name': '妞妞', 'sex': '', 'addr': '河南', 'age': '20'}

    (4)使用clear()方法清空字典,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20","phone":"18888888888"}
    2 infos.clear() #清空字典
    3 print(infos)
    4 
    5 #以上运行结果是:
    6 {}

    五、字典的其他操作方法

     (1)获取字典所有的value,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20","phone":"18888888888"}
    2 print(infos.values())
    3 
    4 #以上运行结果是:
    5 dict_values(['妞妞', '', '河南', '20', '18888888888'])

    (2)获取到字典所有的key,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20","phone":"18888888888"}
    2 print(infos.keys()) #获取到字典所有的key
    3 
    4 #以上运行结果是:
    5 dict_keys(['name', 'sex', 'addr', 'age', 'phone'])

    (3)获取到字典所有的k -v,例如:

    1 infos = {"name":"妞妞","sex":"","addr":"河南","age":"20","phone":"18888888888"}
    2 print(infos.items())# 获取到字典所有的k -v
    3 
    4 #以上运行结果是:
    5 dict_items([('name', '妞妞'), ('sex', ''), ('addr', '河南'), ('age', '20'), ('phone', '18888888888')])

    (4)多维字典取值的方法,例如在下面实例中如果需要取到“qq”,具体是:

     1 people = {
     2     '李雷':{
     3         'age':18,
     4         'money':200000,
     5         'clothes':'100套',
     6         'hzp':'n多',
     7         'shoes':['nike','addis','lv','chanle']
     8     },
     9     '韩梅梅':{
    10         '金库':'2000w',
    11         'house':['三环一套','4环2套'],
    12         'cars':    {
    13                 'japan':['普拉多','兰德酷路泽'],
    14                 'usa':['林肯','凯迪拉克','福特'],
    15                 'china':['五菱宏光','qq','红旗']
    16             }
    17     }
    18 }
    19 print(people['韩梅梅']["cars"]["china"][1])
    20 
    21 #以上实例运行结果是:
    22 qq

    (5)多维字典增加value,例如给韩梅梅的cars里的usa里增加一辆“牧马人”,如下:

     1 people = {
     2     '李雷':{
     3         'age':18,
     4         'money':200000,
     5         'clothes':'100套',
     6         'hzp':'n多',
     7         'shoes':['nike','addis','lv','chanle']
     8     },
     9     '韩梅梅':{
    10         '金库':'2000w',
    11         'house':['三环一套','4环2套'],
    12         'cars':    {
    13                 'japan':['普拉多','兰德酷路泽'],
    14                 'usa':['林肯','凯迪拉克','福特'],
    15                 'china':['五菱宏光','qq','红旗']
    16             }
    17     }
    18 }
    19 people["韩梅梅"]["cars"]["usa"].append("牧马人")
    20 print(people)
    21 
    22 #以上实例运行结果是:
    23 {'李雷': {'age': 18,
    24         'money': 200000,
    25         'clothes': '100套',
    26         'hzp': 'n多',
    27         'shoes': ['nike', 'addis', 'lv', 'chanle']}, 
    28  '韩梅梅': {'金库': '2000w', 
    29          'house': ['三环一套', '4环2套'], 
    30          'cars': {
    31              'japan': ['普拉多', '兰德酷路泽'],
    32              'usa': ['林肯', '凯迪拉克', '福特', '牧马人'], 
    33              'china': ['五菱宏光', 'qq', '红旗']}}}

    (6)对字典进行循环,如果直接循环字典的话,那么循环的是字典的key,例如:

     1 people = {
     2     '李雷':{
     3         'age':18,
     4         'money':200000,
     5         'clothes':'100套',
     6         'hzp':'n多',
     7         'shoes':['nike','addis','lv','chanle']
     8     },
     9     '韩梅梅':{
    10         '金库':'2000w',
    11         'house':['三环一套','4环2套'],
    12         'cars':    {
    13                 'japan':['普拉多','兰德酷路泽'],
    14                 'usa':['林肯','凯迪拉克','福特'],
    15                 'china':['五菱宏光','qq','红旗']
    16             }
    17     }
    18 }
    19 for i in people: #直接循环字典的话,那么循环的是字典的key
    20     print(i)
    21 
    22 #以上实例运行结果是:
    23 李雷
    24 韩梅梅   #循环的结果只取到了key,即 李雷 和 韩梅梅

    (7)可以用对应的key 和 value进行字典的循环,例如:

     1 people = {
     2     '李雷':{
     3         'age':18,
     4         'money':200000,
     5         'clothes':'100套',
     6         'hzp':'n多',
     7         'shoes':['nike','addis','lv','chanle']
     8     },
     9     '韩梅梅':{
    10         '金库':'2000w',
    11         'house':['三环一套','4环2套'],
    12         'cars':    {
    13                 'japan':['普拉多','兰德酷路泽'],
    14                 'usa':['林肯','凯迪拉克','福特'],
    15                 'china':['五菱宏光','qq','红旗']
    16             }
    17     }
    18 }
    19 for k,v in people.items():
    20     print(k,"====>",v)
    21 
    22 #以上实例运行结果是:
    23 李雷 ====> {'age': 18, 'money': 200000, 'clothes': '100套', 'hzp': 'n多', 'shoes': ['nike', 'addis', 'lv', 'chanle']}
    24 韩梅梅 ====> {'金库': '2000w', 'house': ['三环一套', '4环2套'], 'cars': {'japan': ['普拉多', '兰德酷路泽'], 'usa': ['林肯', '凯迪拉克', '福特'], 'china': ['五菱宏光', 'qq', '红旗']}}

     六、将一个字典更新到另一个字典中,使用update()方法,如下:

    a1 = {'姓名':'niuniu','籍贯':'河南',}
    a2 = {'年龄':'保密'}
    a1.update(a2)
    print(a1)
    
    结果是:{'姓名': 'niuniu', '籍贯': '河南', '年龄': '保密'}
  • 相关阅读:
    ubuntu---系统备份
    Linux---基础篇学习记录
    ubuntu---如何进入高级选项
    ubuntu---【nvidia-smi】命令参数含义
    ubuntu---卡顿,强制关机,引发的一系列问题
    CUDA---安装提示“Not enough space on parition mounted at /”
    C++ ---usleep()功能
    ubuntu---常用命令
    yolo---训练时,命令行中加入-map 和 -dont_show
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/xiehong/p/8663092.html
Copyright © 2020-2023  润新知