Python数据类型详解——字典

系统 1528 0

Python数据类型详解——字典

引子

已经学习了列表,现在有个需求——把公司每个员工的姓名、年龄、职务、工资存到列表里,你怎么存?

          
            staff_list = [
    ["Kwan",21,"CEO",1000000],
    ["小明",22,"人力",5000],
    ["LL",21,"财务",7000],
    # [xxx,xx,xx,xxx]
    # [xxx,xx,xx,xxx]
    # [xxx,xx,xx,xxx]  
]
          
        

以上面的形式存,没问题。不过你要查某一个人的工资的话,就得遍历这个列表了。

          
            for i in staff_list:
    if i[0] == '小明':        # 查询小明的信息
        print(i)
        break
          
        

但假如公司有20000人,如果你要查询的这个人正好在列表的最后一个,那就意味着这个for循环得20000人全部走一遍,才能找到。列表越大,查找速度就会越慢。

此时,就需要用到Python语言中唯一得映射类型——字典(dict)。

一、定义

定义语法 {key1:value1, key2:value2} (以 键值对 得形式定义,用 {} 括起来)

1、键(key)与值(value)之间用冒号 : 隔开。

2、键值对与键值对之间用 , 隔开。

示例:

          
            info = {
    'name':'Kwan',
    'age':'21',
    'blog_site':'https://cnblogs.com/Kwan-C/'
}
          
        

特性:

  • key-value(键值对)结构
  • key必须为不可变数据类型、必须唯一
  • 可存放任意多个value、可修改、可以不唯一
  • 字典是无序的
  • 查询速度块,且不受字典大小的影响(至于为什么块?学到hash时就懂了)

二、创建方法

          
            # 第一种(最常用)
info = {'name':'Kwan', 'age':21}

# 第二种
info = dict(name='Kwan', age=21)

# 第三种
info = dict({'name':'Kwan', 'age':21})

# 第四种
s = {}.fromkeys(['name', 'age'],1)    # 这种定义的结果为{'name': 1, 'age': 1}
          
        

三、增加操作

          
            info = {
    'Kwan':[21, 'CEO', 1000000],
    '小明':[22, '人力', 5000],
}

# 新增LL   直接添加
info['LL'] = [21, '财务', 7000]
# 或者使用setdefault
info.setdefault('LL', [21, '财务', 7000])
          
        

四、删除操作

          
            info = {
    'Kwan':[21, 'CEO', 1000000],
    '小明':[22, '人力', 5000],
}

info.pop('Kwan')  # 用pop()方法,删除指定的key
info.popitem()    # 用popitem()方法,随机删除一个key
del info['小明']  # 用del,删除指定的key
info.clear()      # 用clear()方法,清空该字典 
          
        

五、修改操作

          
            info = {
    'Kwan':[21, 'CEO', 1000000],
    '小明':[22, '人力', 5000],
}

info['Kwan'][1] = 'boss'    # 直接找到指定元素重新赋值即可
info['KK'] = '新来的'      # 'KK'这个键(key)不存在于info中,此时就是添加操作了

info2 = {
    'PP':[24, '销售', 6000],
    'UU':[23, '宣传', 5000],
}

info.update(info2)      # 将字典info2的键值对添加到字典info中
          
        

六、查操作

          
            info = {
    'Kwan':[21, 'CEO', 1000000],
    '小明':[22, '人力', 5000],
}


a = info['Kwan']    # 返回字典中key为'Kwan'对应的值,若key不存在,则报错
b = info.get('小明', default = None)   # 返回地点中key为'小明'对应的值,若key不存在,则返回default的值(default默认值为None)
if 'Kwan' in info:      # 用in方法,判断key是否在字典中,存在则返回True,否则为False
    print(info['Kwan'])
c = info.keys()     # 返回一个包含字典所有key的列表
d = info.values()   # 返回一个包含字典所有value的列表
e = info.items()    # 返回一个包含所有(key, value)元组的列表
          
        

七、循环

          
            info = {
    "name":"Kwan",
    "ahe":21,
    "website": "https://cnblogs.com/Kwan-C/"
}

# 第一种
for k in info.keys():    # 遍历字典所有的key
    print(k, info[k])
    
# 第二种
for k, v in info.items():   # 遍历字典所有的键值对
    print(k, v)

# 第三种
for k in info:      # 同第一种
    print(k, info[k])
          
        

八、求取字典的长度

          
            info = {
    "name":"Kwan",
    "ahe":21,
    "website": "https://cnblogs.com/Kwan-C/"
}

print(len(info))     # 结果为字典中key的数量,info中key的数量为3
          
        

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论