zoukankan      html  css  js  c++  java
  • Day2-Python基础2---字典操作

    一、字典操作

    字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

    语法:

    1、基本语法

    1 >>> info = {
    2     'stu1101': "Ma Qing",
    3     'stu1102': "Pei Lin",
    4     'stu1103': "Wang Chuan",
    5     'stu1104': "Cai Jin",
    6 }
    7 >>> print(info)
    8 {'stu1104': 'Cai Jin', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin', 'stu1101': 'Ma Qing'}

    2、字典的特性:

    • dict是无序的

    • key必须是唯一的,so 天生去重

    3、字典增加

    1 >>> info["stu1105"] = "蔡文华"
    2 >>> print(info)
    3 {'stu1104': 'Cai Jin', 'stu1105': '蔡文华', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin', 'stu1101': 'Ma Qing'}

    4、修改

    1 >>> info["stu1101"] = "马青"
    2 >>> print(info)
    3 {'stu1104': 'Cai Jin', 'stu1105': '蔡文华', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin', 'stu1101': '马青'}

    5、删除

     1 #方法一:
     2 >>> info.pop("stu1101")
     3 '马青'
     4 >>> print(info)
     5 {'stu1104': 'Cai Jin', 'stu1105': '蔡文华', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin'}
     6 #方法二:
     7 >>> del info["stu1105"]
     8 >>> print(info)
     9 {'stu1104': 'Cai Jin', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin'}
    10 #随机删除
    11 >>> info.popitem()
    12 ('stu1104', 'Cai Jin')
    13 >>> print(info)
    14 {'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin'}

    6、查找

    >>> info = {
        'stu1101': "Ma Qing",
        'stu1102': "Pei Lin",
        'stu1103': "Wang Chuan",
        'stu1104': "Cai Jin",
    }
    #如果差绕的key在字典中不存在,则程序报错
    >>> info["stu1102"]
    'Pei Lin'
    #推荐用get判断,无论字典中是否有要查找的key,python不会报错
    >>> info.get("stu1103")
    'Wang Chuan'
    >>> info.get("stu1105")

    判断字典中是否存在某个值

    1 print("stu1103" in info)    #如果不存在报错!

    7、多级字典嵌套

     1 >>> av_catalog = {
     2     "欧美":{
     3         "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
     4         "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
     5         "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
     6         "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
     7     },
     8     "日韩":{
     9         "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
    10     },
    11     "大陆":{
    12         "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    13     }
    14 }
    15 >>> av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
    16 print(av_catalog["大陆"]["1024"])
    17 ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']

    8、其他用法

    1)values 将字典中的所有values值,生成一个列表

    1 av_catalog.values()
    2 dict_values([{'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过'], 'www.youporn.com': ['很多免费的,世界最大的', '质量一般'], 'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点']}, {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']}, {'1024': ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']}])

    2)keys将字典中的所有keys值,生成一个列表

    1 >>> av_catalog.keys()
    2 dict_keys(['欧美', '日韩', '大陆'])

    3)setdefault(k,v)

    setdefault()表示去取字典中的key,如果取不到,则设置新值,相反如果取到,则返回原有默认值。

    4)update更新字典。如果原字典已有数据已新字典内容为准

     1  info = {
     2     'stu1101': "Ma Qing",
     3     'stu1102': "Pei Lin",
     4     'stu1103': "Wang Chuan",
     5     'stu1104': "Cai Jin",
     6 }
     7 >>> info2 = {1:2,3:4,"stu1103":"王川"}
     8 
     9 >>> info.update(info2)
    10 >>> info
    11 {'stu1103': '王川', 1: 2, 'stu1101': 'Ma Qing', 'stu1104': 'Cai Jin', 3: 4, 'stu1102': 'Pei Lin'}

    5)items 将字典转化为列表

    1 >>> info.items()
    2 dict_items([('stu1103', '王川'), (1, 2), ('stu1101', 'Ma Qing'), ('stu1104', 'Cai Jin'), (3, 4), ('stu1102', 'Pei Lin')])

    6)#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个

    1 >>> info3 = dict.fromkeys([6,7,8],"test")
    2 >>> print(info3)
    3 {8: 'test', 6: 'test', 7: 'test'}
    1  c = dict.fromkeys([6,7,8],[1,{"name":"maqing"},666])
    2 >>> print(c)
    3 {8: [1, {'name': 'maqing'}, 666], 6: [1, {'name': 'maqing'}, 666], 7: [1, {'name': 'maqing'}, 666]}
    4 >>> c[7][1]["name"] = "Peilin"
    5 >>> print(c)
    6 {8: [1, {'name': 'Peilin'}, 666], 6: [1, {'name': 'Peilin'}, 666], 7: [1, {'name': 'Peilin'}, 666]}

    7)dict的循环

    1 #输出字典
    2 for i in info :
    3     print(i,info[i])
    4 #方法二,先把字典转化为列表,然后输出列表
    5 for k,v in info.items():
    6     print(k,v)
  • 相关阅读:
    window.location.reload();页面实现跳转和刷新
    vue自定义指令--directive
    1019 数字黑洞
    1018 锤子剪刀布
    1017 A除以B
    1016 部分A+B
    1015 德才论
    1014 福尔摩斯的约会
    1013 数素数
    1012 数字分类
  • 原文地址:https://www.cnblogs.com/bldly1989/p/6533116.html
Copyright © 2011-2022 走看看