• Ppthon基础学习之Dict


    一、什么是字典?

    字典是Python语言中唯一的映射类型。

    映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。

    字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

    字典类型与序列类型的区别:

    1.存取和访问数据的方式不同。
    2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);
    3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直4.接或间接地和存储数据值相关联。
    5.映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。
    6.映射类型用键直接“映射”到值。

    字典是Python中最强大的数据类型之一。

    二、字典的操作

    # 字典的添加、删除、修改操作
    dict = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
    dict["a"] = "watermelon" # 修改key:"a"对应的value:”apple"改为“watermelon”
    del (dict["a"]) # 万能删除操作
    dict["c"] = "grapefruit" # 修改key对应value
    print(dict.pop("b")) # 取出一个key:"b",并从dict中移除他
    dict.clear() # 清除字典
    # 字典的遍历
    dict1 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
    for k in dict1:
    print("dict[%s]=" % k, dict1[k])

    # 字典items()的使用
    dict2 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
    print(dict2.items()) # 每个元素是一个key和value组成的元组,以列表的方式输出

    # 调用items()实现字典的遍历
    dict3 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
    for (k, v) in dict3.items():
    print("dict3[%s]=" % k, v)


    # 使用列表、字典作为字典的值
    dict4 = {"a": ("apple",), "bo": {"b": "banana", "o": "orange"}, "g": ["grape", "grapefruit"]}
    print(dict4["a"])
    print(dict4["a"][0])
    print(dict4["bo"])
    print(dict4["bo"]["o"])
    print(dict4["g"])
    print(dict4["g"][1])

    dict5 = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
    # 输出key的列表
    print(dict5.keys())
    # 输出value的列表
    print(dict5.values())
    # 每个元素是一个key和value组成的元组,以列表的方式输出
    print(dict5.items())

    # 字典中元素的获取方法
    dict6 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
    print(dict6)
    print(dict6.get("c", "apple"))
    print(dict6.get("e", "apple"))

    # get()的等价语句
    D = {"key1": "value1", "key2": "value2"}
    if "key1" in D:
    print(D["key1"])
    else:
    print("None")

    # 字典的更新
    dict7 = {"a": "apple", "b": "banana"}
    print(dict7)
    dict13 = {"c": "grape", "d": "orange"}
    dict7.update(dict13)
    print(dict7)
    # dpate()的等价语句
    D = {"key1": "value1", "key2": "value2"}
    E = {"key3": "value3", "key4": "value4"}
    for k in E:
    D[k] = E[k]
    print(D)
    # 字典E中含有字典D中的key
    D = {"key1": "value1", "key2": "value2"}
    E = {"key2": "value3", "key4": "value4"}
    for k in E:
    D[k] = E[k]
    print(D)
    # 设置默认值
    dict7 = {}
    dict7.setdefault("a")
    print(dict7)
    dict7["a"] = "apple"
    dict7.setdefault("a", "default")
    print(dict7)


    # 调用sorted()排序
    dict7 = {"a": "apple", "b": "grape", "c": "orange", "d": "banana"}
    print(dict7)


    # 按照key排序
    print(sorted(dict7.items(), key=lambda d: d[0]))


    # 按照value排序
    print(sorted(dict7.items(), key=lambda d: d[1]))


    # 字典的浅拷贝
    dict7 = {"a": "apple", "b": "grape"}
    dict10 = {"c": "orange", "d": "banana"}
    dict11 = dict7.copy()
    print(dict10)

    # 字典的深拷贝
    import copy

    dict7 = {"a": "apple", "b": {"g": "grape", "o": "orange"}}
    dict8 = copy.deepcopy(dict7)
    dict9 = copy.copy(dict7)
    dict8["b"]["g"] = "orange"
    print(dict7)
    dict9["b"]["g"] = "orange"
    print(dict7)

     三、使用字典的注意事项

    1、不能允许一键对应多个值;
    2、键必须是可哈希的。

  • 相关阅读:
    es6-字符串常用方法
    新增行数据校验
    python-Django路由传参
    递归算法
    CSS动画效果
    克隆远程仓库
    添加git仓库
    滚动条——overflow:auto 自定义样式
    CSS——链接伪类选择器
    进程,线程,同步 ,异步
  • 原文地址:https://www.cnblogs.com/Zynga/p/5617553.html
Copyright © 2020-2023  润新知