Python 字典(创建,访问,内置函数的使用)

字典 

  • Python的字典是一对{}括起来的健(key)/值(value)所对应的成员序列,成员之间用逗号隔开键和值之间用冒号隔开
  • 字典的键可以是数值、字符串、元组,但不能为列表因为列表的值是可变的不能计算hash值,值可以为任意类型
  • 一个字典中键是唯一的如果重复,则保留最好一项,其余的自动丢失:列如 d ={'d':1,'d':2,'d':3} 则最后 d = {‘d’:3}

字典的创建

  1. 普通的创建
    dc1 = {} #空字典
    dc2 = {1:'one',2:'two'}  #键为数值,值为字符串
    de3 = {'one':1,'two':2}  #键为字符串,值为数值
    dc4 = {(1,):[1,3,5,7,9],(2,):[2,4,6,8,10]}   #键为元组,值为列表

  2. 用dict 来创建字典
    dc5 =dict(((1,'one'),(2,'two'))) #这里用的元组,也可以用列表只要构成映射关系
    dc6 =dict((['one',1],['two',2],['three',3]))
    print(dc5) #打印出来dc5 为  {1: 'one', 2: 'two'}
    print(dc6) #打印出来dc6 为  {'one': 1, 'two': 2, 'three': 3}

  3. 通过关键字的形式创建字典 关键字创建出来的字典顺序会根据键排序,而不是创建顺序
    dc7 = dict(one = '1',two = '2')
    print(dc7) #打印出来dc7 为 {'one': '1', 'two': '2'}

字典的访问

  1. 通过key访问value 
    d2=d1 意为 d2 引用 d1 他们两共同指向同一个字典,所以字典中键 'x'的值变为 10 不管访问d1的x还是d2的x 值都为10
    因为字典中的键是唯一的,如果加入一个相同的则会保留新的删除旧的
    d1 = {'x':1,'y':2,'z':3}
    d2 = d1
    print(d1['x']) #打印出来的结果为  1
    print(d2['x']) #打印出来的结果为  1
    d2['x'] = 10  # d2=d1 意为 d2 引用 d1 他们两共同指向同一个字典,所以字典中键 'x'的值变为 10 不管访问d1的x还是d2的x 值都为10
    print(d1['x']) #打印出来的结果为  10
    print(d2['x']) #打印出来的结果为  10
    d1['q'] = 4 #给字典中加入键为 q 值为 4 的一项
    print(d1)  #打印出来的结果为 {'x': 10, 'y': 2, 'z': 3, 'q': 4}
    print(d2)  #打印出来的结果为 {'x': 10, 'y': 2, 'z': 3, 'q': 4}
    d1['q'] = 5 #因为字典中的键是唯一的,如果加入一个相同的则会保留新的删除旧的
    print(d1)   #打印出来的结果为{'x': 10, 'y': 2, 'z': 3, 'q': 5}
    print(d2)   #打印出来的结果为{'x': 10, 'y': 2, 'z': 3, 'q': 5}

字典中的BIF 

  • keys() 用列表返回字典的键
    values() 用列表返回字典的值
    items() 用元组的形式返回字典中的项
    str() 用字符串的形式将字典输出
    #keys() 用列表返回字典的键
    dk = {'a':1,'b':2,'c':3}
    d = dk.keys()
    print(d) #打印出来的内容为 dict_keys(['a', 'b', 'c'])
    #values() 用列表返回字典的值
    dv = {'a':1,'b':2,'c':3}
    print(dv.values()) #打印出来的内容为 dict_values([1, 2, 3])
    #items() 用元组的形式返回字典中的项
    di = {'a':1,'b':2,'c':3}
    print(di.items()) #结果为dict_items([('a', 1), ('b', 2), ('c', 3)])
    #str() 用字符串的形式将字典输出
    ds = {'a':1,'b':2,'c':3}
    print(str(ds)) #结果为{'a': 1, 'b': 2, 'c': 3}
  • fromkeys(a) 以序列a为键生成字典 fromkeys(k,v)一序列k为主键,v为值生成字典
    #fromkeys(a) 以序列a为键生成字典 fromkeys(k,v)一序列k为主键,v为值生成字典
    df1 = dict.fromkeys(['a', 'b'])
    df2 = dict.fromkeys(['a', 'b', 'c'],6)
    print(df1) #df1 为 {'a': None, 'b': None}
    print(df2) #df2 为{'a': 6, 'b': 6, 'c': 6}
  • get(key) 获取字典中key所对应的值 get(key,val) 获取字典中与key对应的值若不存在返回val
    #get(key) 获取字典中key所对应的值 get(key,val) 获取字典中与key对应的值若不存在返回val
    dk = {'a':1,'b':2,'c':3}
    print(dk.get('a')) #结果为 1
    print(dk.get('d','not')) #因为没有d 所以结果为 not
    #当不知道键是否在字典中可以用成员关系操作符 in 、 not in 返回值为true false
    print('a' in dk) #ture
  • clear() 清空字典 copy() 复制字典
    #clear() 清空字典 copy() 复制字典
    dc = {'a':1,'b':2,'c':3}
    dcc = dc.copy()
    dc.clear()
    print(dc) #结果为{}
    print(dcc) #结果为{'a': 1, 'b': 2, 'c': 3}
  • del(dict[key]) 删除字典中键为key 的成员 del(dict) 删除字典
    #del(dict[key]) 删除字典中键为key 的成员 del(dict) 删除字典
    dd = {'a':1,'b':2,'c':3}
    del(dd['a'])
    print(dd) #结果为{'b': 2, 'c': 3}
    del(dd) #dd 被删除了
  • pop(key) 删除键为key的项,返回该项的值,若不存在则抛出异常 pop(key,val)删除键为key的项,返回该项的值,若不存在则返回val
    #pop(key) 删除键为key的项,返回该项的值,若不存在则抛出异常 pop(key,val)删除键为key的项,返回该项的值,若不存在则返回val
    dp = {'a':1,'b':2,'c':3}
    print(dp.pop('a')) #结果为1
    print(dp) #dp中 键为a的项被删除了 结果为{'b': 2, 'c': 3}
    print(dp.pop('a','被删除了')) #dp中 键为a的项被删除了 结果为 ‘被删除了’
  • update(dict) 把dict的项跟新到当前字典中
    #update(dict) 把dict的项跟新到当前字典中
    du = {'a':1,'b':2,'c':3}
    du2 = {'d':4,'f':5}
    du.update(du2)
    print(du) #{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'f': 5}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值