python学习字典

---恢复内容开始---

字典

  键key >映射> 值value

例如

  brand=['a', 'b', 'c', 'd']

  slogan=['1', '2', '3', '4']

  print('c对应的是', slogan[brand.index('c')])

创建字典

  dict1 = ['a':1, 'b':2, 'c':3, 'd':4]  //[键:值]  数组形式

  dict2 = dict((('a', 1), ('b', 2), ('c', 3), ('d', 4)))  //元组形式

  dict3 = dict(a=1, b=2, c=3, d=4)  //不能给值加引号,创建后会自动加。而且排序会有变化

使用字典

  dict1['a']  为1

传递值,改变值,创造项

  dict1['a']  = '3' 

  dict1['e']  = '5' 

 

dict4.fromkeys()  

>>> dict4 = {}
>>> dict4.fromkeys((1,2,3))  //直接创建对应为None的字典
{1: None, 2: None, 3: None}
>>> dict4.fromkeys((1,2,3),'num')  //全部值都修改
{1: 'num', 2: 'num', 3: 'num'}
>>> dict4.fromkeys((1,2,3),('one', 'two','three'))  //无法批量修改
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
>>> dict4.fromkeys((1,3),'num')  //无法对个别key修改,而是直接创建一个新的字典
{1: 'num', 3: 'num'}

 

dict4.keys()  //键的元组

dict4.values()  //值的元组

dict4.items()  //对应的键和值元组

 

 >>> dict4 = dict4.fromkeys(range(4),'赞')

>>> dict4

{0: '赞', 1: '赞', 2: '赞', 3: '赞'}

>>> for eachKey in dict4.keys():

    print(eachKey)

0

1

2

3

 

对于其他没有定义的键,试图访问没定义的键

dict4.get(5)  为  None

dict4[5]出错

 

查找键  //在序列里查找的是值

4 in dict4  为  False

 

清空字典

dict4.clear()

对于a={‘a’}  b=a,相当于内存是空,a和b只是这个内存地址的标签,如果让a={},则b还是{‘a’}。就需要用clear来清楚内存里的数据

可以用id(dict4)查看内存地址

同样dict5=dict4.copy()才是真正拷贝另一个字典

 

dict4.pop(2)  //弹出2对应的值

dict4.popitem()  //弹出一组键值,默认最后一个

 

dict4.setdefault(2,''two)  //插入一个键值,在表中位置不定

 

b={'4':'佛'}

dict4.update(b)  将b的键对应的值修改

 

posted @ 2019-01-09 21:51  鸡蛋JD  阅读(135)  评论(0编辑  收藏  举报