字典

字典

# 作用:能存放多个元素,每个元素由key:value组成,key对value有描述性,,key正常情况下是字符串
# key只能由不可变数据类型,value可以为任意类型

# 定义:
# d = {'name':'alex','age':'73','hobby':'rap'}  # 第一种定义方式
# d1 = dict(name = 'alex',age = 84)
# print(d1)  # {'name': 'alex', 'age': 84}
# 上面两种定义方式需要掌握

# 这个定义方式了解即可
# l = [
#     ['name','jason'],
#     ['age',18],
#     ['hobby','read']
# ]
# d = {}
# for i in l:
#     d[i[0]] = i[1]
# print(d)  # {'name': 'jason', 'age': 18, 'hobby': 'read'}
# for k,v in l:
#     d[k] = v
# print(d)  # {'name': 'jason', 'age': 18, 'hobby': 'read'}

# d1 = dict(l)
# print(d1)  #内部for循环

# 优先掌握的操作
# 1.按key存取值:可存可取
# dic = {'name':'alex','age':84}
# dic['name'] = 'egon'
# print(dic)  # {'name': 'egon', 'age': 84}

# dic['hobby'] = 'rap'
# print(dic)  # {'name': 'alex', 'age': 84, 'hobby': 'rap'}
# 在key不存在的时候,会新增一个键值对

# dic['name'] = 'egon'
# dic['name'] = 'jason'
# dic['name'] = 'tom'
# print(dic)  # {'name': 'tom', 'age': 84}
'''
强调:字典的key是不能重复的 要唯一标识一条数据
如果重复了 只会按照最后一组重复的键值对存储
'''

# 2、长度len
# 统计键值对个数

# 3、成员运算in和not in   对于字典来说只能判断key值
# dic = {'name':'alex','age':84}
# print('name' in dic)  # True

# 4、删除
# 删除共有三种操作方式del pop clear
# dic = {'name':'alex','age':84}
# del dic
# print(dic)  # 直接报错,这里的dic已经被清除
# del dic['name']
# print(dic) # 会将name作为key的键值对删除

# res = dic.pop('name')
# print(res)  # 这里 如果要弹出不存在的key是 会直接报错

# dic.clear()
# print(dic)

# 5、键keys(),值values(),键值对items()
# dic = {'name':'alex','age':84}
# print(dic.keys())  # dict_keys(['name', 'age'])
# print(dic.values())  # dict_values(['alex', 84])
# 这里python3和python2不一样,在2中会直接以列表形式输出,这样会很占内存,
# 在3中会以老母猪形式输出,就是你想要里面的值时,给你从中间找出

# print(dic.items())  # dict_items([('name', 'alex'), ('age', 84)])
# 这里直接输出键值对,而且每个键值对在列表中用元组形式存储


# 使用get(key)来获取value
# dic = {'name':'alex','age':84}
# print(dic.get('name'))  # 这种用法类似于dic['name'],但是如果括号中是不存在的key时,会新增一个键值对,但是get就不会
# print(dic.get('hobby'))  # get 会返回一个None,我们可以定义key不存在时返回什么
# print(dic.get('hobby','没有这个key'))  # 在这里就会返回没有这个key

# dict.fromkeys快速创建一个字典,列表中都为key
# l = ['name','age','hobby']  # 这里并不是只能列表,只要是容器类型都行
# print(dict.fromkeys(l,84))  # {'name': 84, 'age': 84, 'hobby': 84}



# dict.popitem() 尾部以元组的形式弹出键值对
# dic = {'name': 'alex', 'age': 84}
# res = dic.popitem()
# print(res)  # 具有返回值





# dict.setdefault()
# dic = {'name': 'alex', 'age': 84}
# dic.setdefault('name','egon')
# res = dic.setdefault('name','egon')
# print(dic,res)  # 当key存在时不改变value,并且将key对应的值返还给你
# dic.setdefault('hobby','rap')
# res2 = dic.setdefault('hobby','rap')
# print(dic,res2)  # 当key不存在时,新增键值对,并且将新增的value返还给你






# dict.update()
# dic = {'name': 'alex', 'age': 84}
# d = {'hobby':'rap'}
# dic.update(d)
# print(dic)  # {'name': 'alex', 'age': 84, 'hobby': 'rap'}可以进行添加
# dic.update(name='egon')
# print(dic)  # {'name': 'egon', 'age': 84}可以直接进行修改
# dic.update(hobby = 'rap')
# print(dic)  # 也可以像这样直接添加






# 循环
# dic = {'name': 'alex', 'age': 84}
# for i in dic:
#     print(i)


# ------------------------------------------------字典总结------------------------------------------------
'''
可变
可以存放多个值
无序

'''

 

posted @ 2018-11-04 19:44  Nmdlao  阅读(123)  评论(0编辑  收藏  举报