字典

作者: 码上版码 | 来源:发表于2020-10-07 23:13 被阅读0次

本节大纲

字典的定义与特性

字典的常用操作

字典的遍历

字典的定义与特性

# 如果列表中的数据是元组类型存储的,会导致列表中的数据无法修改,因为元组内的数据不能修改
# 如果将列表中的元组类型的数据改成列表存储的,如果列表序列改变会导致后续代码数据也改变,导致后续代码需要维护修改
# 因此需要使用字典存储,字典:无序的,它是键值对的形式存储的

'''
字典特性:
    1- 键值对形式
    2- 无序的    
    3- 键是唯一的
定义:
    键:一定是 不可以改变的类型
        可以是:字符串、int、float、元组
        不可以:列表、字典,如果是列表会报错:TypeError: unhashable type: 'list'或'dict',原因:列表和字典都可以改变,所以不能做键
    值:
        1- 值可以是任意类型
        2- 值可以修改

为什么使用字典?
因为序列(列表)类型在一些数据发生变化,下标会变化,后续代码需要维护,所以急需一种不是序列类型,没有下标概念的类型:字典
'''
dict = {'name':'tom', 'age':21}

字典的常用操作

dict = {'name':'tom', 'age':21,'data':{'id':'001','data':'20200120'}}
# 1- 查询
# print(dict['data']['id'])  # 通过键查值
# 2- 修改值 前提:键要存在
dict['name'] = 'jack'
print(dict)
# 3- 增加元素,默认添加到尾部 前提:键不存在
dict['weight'] = 100
print(dict)
# 4- 删除元素 一起删除键值对,字典没有remove删除的方法
del dict['name']  # del删除方法
dict.pop('age')  # pop删除方法
print(dict)
# 5- 查看元素个数
print(len(dict))
# 6- 更新
dict.update({'name':'tom','Gender':'女'})
print(dict)
# 7- in 判断键在不在字典里面
if 'name' in dict:
    print('在里面')
# 8- 清空 当前地址不变,但数据没有了
dict.clear()
# 9- 赋值(空字典) 重新给键赋值,原来指向的地址断开,重新指向一个新地址
dict = {}
# 10- 获取所有的键
print(dict.keys())  # 打印的所有键的数据是 类列表 ,类列表:不支持下标,但可以for遍历
# 将字典里的键强制转化成列表,是一个新地址对象
print(list(dict.keys()))
# for遍历字典的键
for key in dict.keys():  
    print(key)
# 11- 获取所有的值 同键的用法一直
print(dict.values())  # 打印的所有值的数据是 类列表,类列表:不支持下标,但可以for遍历
# 将字典里的值强制转化成列表,是一个新地址对象
print(list(dict.values()))
# for遍历字典的值
for value in dict.values():
    print(value)
# 12- 获取所有的键值对
print(dict.items())

for one in dict.items():
    print(one)  # one代表元组

for a,b in dict.items():
    print(a,b)  # a,b 分别代表 键,值
        
# 13- 对字典本身做遍历
for one in dict:
    print(one)  # one代表键

字典的遍历-案例

'''
请再实现一个程序,实现如下需求点

1.下面的log变量记录了云服务器上 当天上传的文件信息
其中第一列是文件名,第二列是文件大小

请编写一个程序,统计出不同类型的 文件的大小总和
比如:
jpeg  9988999
json   324324
png   2423233
----------------------------------
'''
log = '''
f20180111014341/i_51a7hC3W.jpeg    169472 FrITJxleSP7wUD-MWw-phL_KP6Eu   15156063244230469  image/jpeg 0  
f20180111014341/j_R0Hpl4EG.json    1036   ForGzwzV3e-uR3_UzvppJs1VgfQG   15156064773253144  application/json   0  
f20180111020739/i_0TDKs0rD.jpeg    169472 FrITJxleSP7wUD-MWw-phL_KP6Eu   15156076847077556  image/jpeg 0  
f20180111020739/j_JFO6xiir.json    1040   FmUhTchdLOd7LBoE8OXzPLDKcW60   15156077904192983  application/json   0  
f20180111090619/i_1BwNksbL.jpg 49634  FtXBGmipcDha-67WQgGQR5shEBu2   15156329458714950  image/jpeg 0  
f20180111090619/i_3BKlsRaZ.jpg 30152  FoWfMSuqz4TEQl5FT-FY5wqu5NGf   15156330575626044  image/jpeg 0  
f20180111090619/i_5XboXSKh.jpg 40238  Fl84WaBWThHovIBsQaNFoIaPZcWh   15156329453409855  image/jpeg 0  
f20180111090619/i_6DiYSBKp.jpg 74017  FrYG3icChRmFGnWQK6rYxa88KuQI   15156329461803290  image/jpeg 0  
f20180111090619/i_76zaF2IM.jpg 38437  Fui8g5OrJh0GQqZzT9wtepfq99lJ   15156334738356648  image/jpeg 0  
f20180111090619/i_B6TFYjks.jpg 37953  FleWqlK2W1ZmEgAatAEcm1gpR0kC   15156329464034474  image/jpeg 0  
f20180111090619/i_N9eITqj3.jpg 38437  Fui8g5OrJh0GQqZzT9wtepfq99lJ   15156330419595764  image/jpeg 0  
f20180111090619/i_QTSNWmA6.jpg 37953  FleWqlK2W1ZmEgAatAEcm1gpR0kC   15156333104224056  image/jpeg 0  
f20180111090619/i_XdHcAfh1.jpg 56479  FjLQIQ3GxSEHDfu6tRcMylK1MZ05   15156334227270309  image/jpeg 0  
f20180111090619/i_Xyy723MU.jpg 50076  FsfZpQzqu084RUw5NPYW9-Yfam_R   15156334229987458  image/jpeg 0  
f20180111090619/i_d8Go0EOv.jpg 30152  FoWfMSuqz4TEQl5FT-FY5wqu5NGf   15156334736228515  image/jpeg 0  
f20180111090619/i_diuHmX53.jpg 40591  FuTx1pw4idbKnV5MSvNGxCA5L470   15156333878320713  image/jpeg 0  
f20180111090619/i_qQKzheSH.jpg 55858  Fj0A3i8V7fzzOiPQFL79ao15hkN9   15156329456666591  image/jpeg 0  
f20180111090619/i_rHL5SYk8.jpg 40238  Fl84WaBWThHovIBsQaNFoIaPZcWh   15156336509742181  image/jpeg 0  
f20180111090619/i_xZmQxUbz.jpg 40238  Fl84WaBWThHovIBsQaNFoIaPZcWh   15156333240603466  image/jpeg 0  
f20180111090619/i_zBDNgXDv.jpeg    73616  FlgNwq8lypgsxrWs_ksrS_x47SQV   15156334232887875  image/jpeg 0  
f20180111090619/j_4mxbEiVh.json    2990   Fpq-3yl3Yr1CadNrJVSDnpeRhQtT   15156331445226898  application/json   0  
f20180111090619/j_i1K74768.json    3042   Fl5PpDw1TsZXMuhoq1RUrOeGZ6br   15156335067090003  application/json   0  
f20180111095839/i_Q7KMKeda.png 518522 Fl-yB1_ruL2uxZN9k7DjB62h9dYH   15156359599713253  image/png  0  
f20180111095839/j_5DpqHolV.json    184    FoYvi7cmSrzuVjUgCRzW5kU95SVo   15156359719719064  application/json   0  
f20180111100442/i_No8kToIV.jpg 48975  Fu1cw3f--5Vpz9kLGeJfvljhCtyZ   15156364349642377  image/jpeg 0  
f20180111100442/i_P1bkvSeg.jpg 68200  FvYe8vi46TjUKhEy_UwDqLhO6ZsW   15156363800690634  image/jpeg 0  
f20180111100442/i_T1AulKcD.jpg 52641  Fj2YzvdC1n_1sF93ZZgrhF3OzOeY   15156364021186365  image/jpeg 0  
f20180111100442/i_X8d8BN07.jpg 50770  FivwidMiHbogw77lqgkIKrgmF3eA   15156363969737156  image/jpeg 0  
f20180111100442/i_g0wtOsCX.jpg 76656  Fmtixx0mP9CAUTNosjLuYQHL6k0P   15156363448222155  image/jpeg 0  
f20180111100442/i_h5OT9324.jpg 72672  FvbIqPLTh2cQHTIBv2akUfahZa_Z   15156364401354652  image/jpeg 0  
f20180111100442/i_he8iLYI6.jpg 49399  FjeJvwjwhU-hKZsq66UoBg9_tEJs   15156363907932480  image/jpeg 0  
f20180111100442/i_kg29t7Pp.jpg 76293  FuYj__sSeEN7AsXMbxO24Z8Suh8d   15156364156384686  image/jpeg 0  
f20180111100442/i_oz1YoBI1.jpg 75620  FkY3xsUMwOI01zgoH1iXXgiQeq6I   15156364089112904  image/jpeg 0  
f20180111100442/i_xrOT98on.jpg 50021  Fql7ookM1Rc6V7VairKAfnKe-o9w   15156363856357316  image/jpeg 0  
f20180111135114/i_Zqt8Tmoe.png 161629 FlELw59_mV3VqDBLyu1BKN4fIWnx   15156500155209863  image/png  0  
f20180111135114/j_uhHoMXKq.json    159    FrypljwAr2LgoLAePBNTUYTUAgDt   15156500200488238  application/json   0  
f20180111142119/i_s83iZ2GR.png 92278  Fns8tdh3JCkRmfE_COYEu4o8w03E   15156517082371259  image/png  0  
f20180111142119/j_0g45JRth.json    159    Fq1rFwdRguYRXrp61nGZ5TsUG1V-   15156517143375596  application/json   0  
f20180111144306/i_yE5TC84E.png 139230 Fjf61ymabEnEvnr5ZMHFjXGCrYlP   15156530038824150  image/png  0  
f20180111144306/j_OF4WVtSH.json    159    FqwkKcxfo8jd0jFUyuH4X2CrnE9q   15156530083419530  application/json   0  
f20180111150230/i_KtnER4g3.png 120044 FuwOWdrqzcr2-UScem-LzEMgMezs   15156541734892258  image/png  0  
f20180111150230/j_xMSUEejY.json    158    FjJr_4deMqFphGaptm-2Pa6wwRP2   15156541771989216  application/json   0  
f20180111151741/i_JuSWztB3.jpg 92506  FrIjRevHSi6xv4-NQa2wrHu5a1zQ   15156550875370965  image/jpeg 0  
f20180111153550/i_9wWzVenl.gif 769872 FvslKY9JUaCQm-lu02E34tvAP_oG   15156561674621628  image/gif  0  
'''

resDict = {}
# 获取到每一行的文件类型与大小
# 获取每一行内容
lines = log.split('\n')
# 删除头尾的空字符串
del lines[0],lines[-1]
# 对列表每一个元素进行操作--for遍历
for line in lines:
    temp = line.split('\t')
    # 文件类型
    fileType = temp[0].split('.')[-1].strip()
    # 文件大小
    fileSize = int(temp[1].strip())
    # print(fileType,fileSize)
    # 统计累加
    resList = {'类型1':'大小1','类型2':'大小2'}
    # 1- 该行类型不在字典里,新增一个键值对
    if fileType not in resDict:
        resDict[fileType] = fileSize
    # 2- 该行类型在字典里,累加
    else:
        resDict[fileType] += fileSize
print(resDict)

扩展-字典的使用

# 扩展-字典的使用
vipData = '''{
"aac003": "tom",
"tel": "13574556577",
"crm003": "1",
"crm004": "1"
}'''

"""
接口自动化
    1- json格式:本身就是字符串,以键值的形式表达
    2- 字典:数据类型,存储使用
"""
"""vipData修改tom值"""
# 1- json 转换成 字典
import json
print('转换前-->',type(vipData),vipData)
res = json.loads(vipData)  # 转换成字典
res['aac003'] = 'jack'  # 修改tom为jack
print('转换后-->',type(res),res)
# 2- 字典 转换成 json
print(json.dumps(res),type(json.dumps(res)))

相关文章

  • day9-课程总结

    1.字典 增:字典[key] = 值; 字典.setdefaule(key, 值);字典.update(字典)删:...

  • swift--字典

    创建字典 字典的基本操作 遍历字典 字典合并

  • Swift学习系列 字典的使用

    字典的概念 字典的初始化 字典元素的基本操作 字典的基本操作 字典的遍历 字典合并

  • 字典

    创建字典 访问字典中的值 修改、添加字典 修改字典中的值 在末尾增添新的键/值 删除字典元素 删除字典 清空字典 ...

  • 新2019计划:python学习-字典【4】

    字典 本篇章讲述数据结构字典,主要围绕如何访问字典,如何修改字典,如何删除字典某元素,如何遍历字典,字典的常见方法...

  • Swift 基础笔记 - 字典

    字典 定义同样使用 [] 定义字典let 不可变字典var 可变字典 定义空字典 字典常用操作赋值直接使用dict...

  • day8-函数基础

    2.字典 2.1操作字典 2.1.1. clear 字典.clear() 清空字典 2.1.2. copy 字典2...

  • Swift字典

    字典的定义 字典的增删改查 字典的遍历 字典的合并

  • day8-总结

    1.字典相关方法 字典.clear() - 清空字典(删除字典中所有的键值对) 2.copy 字典.copy()-...

  • 字典

    本节大纲 字典的定义与特性 字典的常用操作 字典的遍历 字典的定义与特性 字典的常用操作 字典的遍历-案例 扩展-...

网友评论

      本文标题:字典

      本文链接:https://www.haomeiwen.com/subject/aoeqpktx.html