zoukankan      html  css  js  c++  java
  • 字典

    字典:

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组

      字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    2.6.1、

    dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
    # dic['sex'] = 'LaddyBoy'
    # dic['name'] = 'Alex' 有则覆盖,没有就添加
    # dic.setdefault('sex') 在字典中添加键值对,如果只有键,那对应的值是None
    # dic.setdefault('sex', 'Laddyboy') 有则不变,无则添加
    # dic.setdefault('name', 'alex')
    # print(dic)

    dic.setdefault(k,v)有返回值,字典中有k,返回字典中的v,字典中没k,返回添加的v

    2.6.2、

    # print(dic.pop('age'))  # 有返回值,返回的是键对应的值
    # print(dic.pop('age1', '没有此键...')) 没有对应的键,返回‘没有此键...’
    # print(dic)

    # dic.clear()                       #清空字典
    # print(dic)

    # print(dic.popitem())  # 随机删除,有返回值,返回值为元组,里面是删除的键值对
    # print(dic)

    # del
    # 1,删除整个字典
    # del dic
    # 2,按照键删除键值对
    # del dic['name']
    # print(dic)
    复制代码
    # dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
    # print(dic_pop)
    # del dic["name"]  # 没有返回值。
    # print(dic)
    
    # dic_pop1 = dic.popitem()  # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
    # print(dic_pop1)  # ('name','jin')
    
    # dic_clear = dic.clear()  # 清空字典
    # print(dic,dic_clear)  # {} None
    复制代码

    2.6.3、

    # 1, dic['name'] = 'Alex'  有则覆盖,没有就添加
    # update 两个字典的更新
    # dic = {"name": "jin", "age": 18, "sex": "male"}
    # dic2 = {"name": "alex", "weight": 75}
    # dic2.update(dic) # 将dic里面的所有键值对 覆盖添加到dic2中,dic不变
    # print(dic) # {'name': 'jin', 'age': 18, 'sex': 'male'}
    # print(dic2) # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
    # 改
    # dic = {"name":"jin","age":18,"sex":"male"}
    # dic2 = {"name":"alex","weight":75}
    # dic2.update(dic)  # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
    # print(dic2)

    2.6.4、

    # 1,dic['name']
    # print(dic['name']) 有,找到;没有,报错

    # 2,dic.get('name')
    # print(dic.get('name')) 有,找到
    # print(dic.get('name1')) 没有,None
    # print(dic.get('name1', 'sb没有此键')) 没有,sb没有此键

    # for循环查询
    # dic.keys(), dic.values(), dic.items() # 类似于list但不是list的类型
    # print(dic.keys(),type(dic.keys())) dict_keys(['name', 'age', 'hobby']) <class 'dict_keys'>
    # for key in dic.keys():
    # print(key) 键循环
    # l_key = list(dic.keys())
    # print(l_key) ['name', 'age', 'hobby']

    # for value in dic.values():
    # print(value) 值循环


    print(dic.items())                         dict_items([('name', '老男孩'), ('age', 56), ('hobby', 'women')])
    # value1 = dic["name"]  # 没有会报错
    # print(value1)
    #
    # value2 = dic.get("djffdsafg","默认返回值")  # 没有可以返回设定的返回值
    # print(value2)

    2.6.5、其他操作。

    # 分别赋值概念
    # a, b = 1, 2
    # a, b = ('alex', '34')
    # a, b = ['alex', '34']
    # 有 如下 a = 1 b = 3,用一行代码将a b值互换。
    # a = 1
    # b = 3
    # a, b = b, a

    # k,v = ('name', '老男孩')
    # for k,v in dic.items(): # [('name', '老男孩'), ('age', 56), ('hobby', 'women')]
    # print(k,v) name 老男孩
    age 56
    hobby women
    复制代码
    # item = dic.items()
    # print(item,type(item))  # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) <class 'dict_items'>
    # 这个类型就是dict_items类型,可迭代的
    
    # keys = dic.keys()
    # print(keys,type(keys))  # dict_keys(['sex', 'age', 'name']) <class 'dict_keys'>
    
    # values = dic.values()
    # print(values,type(values))  # dict_values(['male', 18, 'jin']) <class 'dict_values'> 同上
    复制代码

    字典的循环。

    复制代码
    # dic = {"name":"jin","age":18,"sex":"male"}
    # for key in dic:
    #     print(key)
    # for item in dic.items():
    #     print(item)
    # for key,value in dic.items():
    #     print(key,value)  
    复制代码
  • 相关阅读:
    z-index优先级小结
    如何消除img间的默认间隙
    text-align和vertical-align
    HTTP
    HTTP
    HTTP
    HTTP
    ES6标准入门
    ES6标准入门
    ES6标准入门
  • 原文地址:https://www.cnblogs.com/molieren/p/9140049.html
Copyright © 2011-2022 走看看