zoukankan      html  css  js  c++  java
  • Python的字典类型

      Python的字典类型为dict,用{}来表示,字典存放键值对数据,每个键值对用:号分隔,每个键值对之间用,号分隔,其基本格式如下:

    d = {key1 : value1, key2 : value2 }

      键一般是唯一的,如果重复最后一个键值对会替换前面的,值不需要唯一,值可以取任何数据类型,但键必须是不可变的可哈希的,如字符串,数字或元组。

    一、字典的“增删改查”

    1.向字典中添加元素

     将添加元素的键放进方括号中,然后用赋值操作,将添加元素的值赋值给键,示例如下:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
    2 lol["李青"] = "盲僧"
    3 print(lol)

    {'亚索': '剑豪', '露露': '仙灵女巫', '提莫': '迅捷斥候', '李青': '盲僧'}

    使用setdefault(key, value)方法,示例如下:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
    2 lol.setdefault("赵信", "德邦总管")
    3 print(lol)

    {'亚索': '剑豪', '露露': '仙灵女巫', '提莫': '迅捷斥候', '赵信': '德邦总管'}

    2.删除元素
    使用pop(key)方法,示例如下:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
    2 lol.pop("亚索")
    3 print(lol)

    {'露露': '仙灵女巫', '提莫': '迅捷斥候'}

    使用del,示例如下:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
    2 del lol["露露"]
    3 print(lol)

    {'亚索': '剑豪', '提莫': '迅捷斥候'}

    popitem()方法可以删除字典中随机一个元素(Python3.6删除字典最后一项):

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
    2 lol.popitem()
    3 print(lol)

    {'亚索': '剑豪', '露露': '仙灵女巫'}

    3.更改字典中的元素
    通过key直接赋值,可以强制修改:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
    2 lol["露露"] = "小萝莉"
    3 print(lol)

    {'亚索': '剑豪', '露露': '小萝莉', '提莫': '迅捷斥候'}

    使用update()方法,将新元素和更改后的元素存放进字典:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候"}
    2 loli = {"露露": "小萝莉","阿狸": "九尾妖狐"}
    3 lol.update(loli)
    4 print(lol)

    {'亚索': '剑豪', '露露': '小萝莉', '提莫': '迅捷斥候', '阿狸': '九尾妖狐'}

    4.查找
    使用key进行查找:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
    2 print(lol["提莫"])

    迅捷斥候

    使用get()方法进行查找,没有返回None,可以指定返回内容:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
    2 print(lol.get("安妮", "黑暗之女"))

    黑暗之女

    使用setdefault()方法,没有返回None,可以指定返回内容:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
    2 print(lol.setdefault("提莫", "小提莫"))

    迅捷斥候

    二、字典的操作
    获取所有key,示例如下:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
    2 print(lol.keys())

    dict_keys(['亚索', '露露', '提莫', '阿狸'])

    获取所有value,示例如下:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
    2 print(lol.values())

    dict_values(['剑豪', '仙灵女巫', '迅捷斥候', '九尾妖狐'])

    获取所有键值对,示例如下:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
    2 print(lol.items())

    dict_items([('亚索', '剑豪'), ('露露', '仙灵女巫'), ('提莫', '迅捷斥候'), ('阿狸', '九尾妖狐')])

    clear()清空字典中的所有元素:

    1 lol = {"亚索": "剑豪", "露露": "仙灵女巫", "提莫": "迅捷斥候", "阿狸": "九尾妖狐"}
    2 lol.clear()
    3 print(lol)

    {}

     fromkeys()快速创建一个dict:

    1 dic = dict.fromkeys(['Jay','JJ'], ['周杰伦', '林俊杰'])
    2 print(dic)

    {'Jay':['周杰伦', '林俊杰'], 'JJ':['周杰伦', '林俊杰']}

    注意:如果用fromkeys创建出的字典,value是列表,会有浅拷贝问题,当一个列表增加元素,其他列表也会增加。

  • 相关阅读:
    链接被点击时不出现虚线框的方法
    label 和 legend标签的用法
    了解常见的浏览器内核 Trident,Geckos,Presto,Webkit
    DOCTYPE声明的几种类型
    Angularjs基础教程
    理解angular中的module和injector,即依赖注入
    es5 api
    css3_note
    canvas 基础知识
    uglifyjs note
  • 原文地址:https://www.cnblogs.com/heshike/p/9402794.html
Copyright © 2011-2022 走看看