zoukankan      html  css  js  c++  java
  • 07 Python之字典和集合

    1. 什么是字典
      字典是用{}表示,以key:value的形式来保存数据的,其查找效率比较高

      坑:

        字典存储数据时是用哈希值来存储的,算法不能变(python的)

      数据必须是可哈希的(不可变的),字典中的key必须是可哈希的(不可变的)

    dic = {"jay":"周杰伦", "jj": "林俊杰", "jolin":"蔡依林"}
    print(dic['jay']) # 周杰伦
    dic['jay'] = "麻花藤"
    print(dic)#{'jay': '麻花藤', 'jj': '林俊杰', 'jolin': '蔡依林'}

    2. 字典的增删改查
      1. 添加
      dic[新key] = 值

    dic = {"意大利": "李云龙", "美国": "美国往事"}
    dic["日本"] = "东京审判"  # 新key表示添加
    dic['韩国'] = "釜山行"
    print(dic)#{'意大利': '李云龙', '美国': '美国往事', '日本': '东京审判', '韩国': '釜山行'}

      setdefault()

      有添加功能,dic.setdefault("key","value")

      如果key是存在的则不添加.

      流程:判断你给的key是否存在于字典中,如果存在不添加.如果不存在,执行新增的操作.

    2. 删除
      pop(key)

    dic = {"张艺谋":"红高粱", "李安":"断臂山", "陈凯歌":"霸王别姬", "郭德纲":"祖宗十九代"}
    dic.pop("郭德纲") # pop(key)  删除郭德纲
    dic.popitem() # 随机删除一项. 在python早期版本  字典是无序的.
    del dic["李安"]  del dic["key"] 删除指定一项

      dic.clear()  清空

    3. 修改
    dic[老key] = 值

    dic = {"jay":"周杰伦", "jj": "林俊杰", "jolin":"蔡依林"}
    dic['jay'] = "麻花藤"
    print(dic)#{'jay': '麻花藤', 'jj': '林俊杰', 'jolin': '蔡依林'}

    update() 更新字典

    dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    dic2 = {"赵四":"宝宝", "刘能":"萌萌", "皮校长":"皮长山"}
    
    dic1.update(dic2) # 把dic2怼到dic1里面. 把dict2中的内容更新到dic1
    print(dic1)
    print(dic2)
    #{'赵四': '宝宝', '刘能': '萌萌', '王木生': '范伟', '皮校长': '皮长山'}
    #{'赵四': '宝宝', '刘能': '萌萌', '皮校长': '皮长山'}

    4. 查询

    dic[key]  直接使用key获得value,如果key不存在则报错
    get(key, 值)  dic.get(key,值)  如果输入没有的key则会返回值  如果没有值 则返回默认的None
    setdefault(key, value) 

    #第一个功能是添加(当key不存在). 第二个功能是查询(根据你给的key查询)
    # 整个执行流程: 判断给的key是否存在. 如果存在. 就不执行新增流程.直接查询出这个key对
    #应的value
    # 如果key不存在. 先执行新增操作. 再使用key把对应的value查询出来
    dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    ret = dic1.setdefault("皮长山", "皮校长")
    print(ret) # 皮校长
    ret = dic1.setdefault("王木生", "宝宝")
    print(ret) # 范伟

    5. 遍历,字典是一个可迭代对象

    dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
    # 1. 使用for循环直接遍历字典的key
    for key in dic:
         print(key)
         print(dic[key])
    
    # 2. 可以使用字典的items()+解构可以直接获取到key和value
    for k, v in dic.items():
         print(k)
         print(v)

    3. 字典的相关操作

    1. keys() 获取到所有的键

    2. values() 获取到所有的值

    3. items() 拿到所有的键值对

    for k, v in dic.items(): # 遍历字典最简单的方案
        # print(item) # ('赵四', '刘晓光')
        # k, v = item # 解构
        # k = item[0]
        # v = item[1]
        print(k, v)


    4. 字典的嵌套
    字典的嵌套. 字典套字典

    5. 集合(不重要). 去重复
    集合中的元素是不重复的. 必须是可哈希的(不可变), 字典中的key
    空集合:set()
    空元组:tuple()
    空列表:list()
    非空集合: {123}集合, 集合其实就是不存value的字典

  • 相关阅读:
    如何以nobody用户执行命令?
    记一次全站代理切换----血的教训
    tomcat十大安全优化措施
    paramiko模块使用
    日志分析 第七章 安装grafana
    日志分析 第六章 安装elasticsearch
    日志分析 第五章 安装logstash
    日志分析 第四章 安装filebeat
    IO多路复用及ThreadingTCPServer源码阅读
    socket编程--socket模块介绍
  • 原文地址:https://www.cnblogs.com/a2534786642/p/10046584.html
Copyright © 2011-2022 走看看