字典的操作用法小总结

字典

 

dic = {'name':'Laonanhai',
            'age':45,    
            'name_list':['反面教材','俊俊',....]
            }

 

 

基础数据类型之一,{} 以键值对的形式存储数据。

 以key:value形式,映射,存储的大量的关系型数据。

 数据类型的分类:

 

        可变(不可哈希hash):list,dict,set, list = [11,222,333]

 

        不可变(可哈希hash):str,tuple,int,bool   name = 'alex'

  容器类:

 

            容器类的数据类型:list,tuple,dict, l1 = [11,True,'alex',[22,33,44]]

            非容器类的数据类型:str,int,bool。 s1 = '[11,22,33]'

 字典的key必须是不可变的数据类型,是唯一的,

 

             

              hash算法:

            字典的键通过hash表转换成数字,采用二分查找查询数字

           

      字典的value可以是任意数据类型。

 

     字典的查询速度非常快,存储的大量的关系型数据。

 

     字典在python3.5包含3.5之前都是无序,但3.6之后是有序的。

 

 

# 键唯一

 

# dic = {

 

#     'name': 'alex',

 

#     'name': 'WuSir',

 

# }

 

# print(dic)

 

# 键必须是不可变得可哈希的数据类型

 

# dic = {

 

#     'name': 'alex',

 

#     [1, 2, 3]: 'values',

 

# }

 

# print(dic)

 

 

 

    4,字典的增删改查及其他操作

 

                 

          dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}

 

 

   增

 

# dic['sex'] = 'LaddyBoy'
# dic['name'] = 'Alex'  有则覆盖,没有就添加
# dic.setdefault('sex')
# dic.setdefault('sex', 'Laddyboy') 有则不变,无则添加。
# dic.setdefault('name', 'alex')
# print(dic)

 

 

 

 

    pop

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

    clear

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

    popitem

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

   del

# 1,删除整个字典
# del dic
# 2,按照键删除键值对
# del dic['name']
# print(dic)

  改

 

# 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'}

 

# 1,dic['name']
# print(dic['name1'])

 

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

  for循环 查询  

# dic.keys(), dic.values(), dic.items()  #类似于list但不是list的类型。

 

# print(dic.keys(),type(dic.keys()))
# for key in dic.keys():
#     print(key)
# l_key = list(dic.keys())
# print(l_key)

 

# for value in dic.values():
#     print(value)
# l_value = list(dic.values())
# print(l_value)
# print(dic.items())

引入  分别赋值概念

 

# 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
# for k,v in dic.items(): # [('name', '老男孩'), ('age', 56), ('hobby', 'women')]
#  print(k,v)

 

 

 

 

字典的嵌套

PS

 

dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}

 

# 1,给dic添加一个键值对,学校:老男孩
# dic['学校'] = '老男孩'
# print(dic)
# 2,将status对应的值改成True
# dic['status'] = True
# print(dic)
# 3,给name_list对应的列表追加一个元素:平平
# print(dic['name_list'])
# dic['name_list'].append('平平')
# print(dic)
# 4,给personal_msg对应的字典添加一个键值对sex:男
# dic2 = dic['personal_msg']
# dic2['sex'] = '男'
# print(dic)
# dic['personal_msg']['sex'] = '男'
# print(dic)
# 5,将hobby_list 对应的列表中的烫头改成唱歌。
# dic['personal_msg']['hobby_list'][-1] = '唱歌'
# print(dic)

 

posted @ 2018-05-03 16:28  HoneyCY  阅读(300)  评论(0编辑  收藏  举报