In [1]: #欢迎来到“只读课堂”!
In [2]: #今天我们来讲一个“字典类型”的变量。
In [3]: #在字典中,一个字,对应一个页码,我们把它称为“映射”。在python中,我们把它称为字典变量。
In [4]: #空列表,我们同样用var
In [5]: var = {}
In [6]: var = dict()
In [7]: type(var)
Out[7]: dict
In [8]: #那么我们写一个有值的字典:
In [9]: var = {'中':100, '左':200}
In [10]: #这是说,“中”这个字后面是100,“左”后面是200,然后就没了。
In [11]: #——————————————————————————————————————————————————————————————
In [12]: #获得字符所在页码:
In [13]: var['中']
Out[13]: 100
In [14]: #——————————————————————————————————————————————————————————————
In [15]: #在列表里显示:
In [16]: words = ['中', '左']
In [17]: location = [100,200]
In [18]: #从列表里取出来:
In [19]: location[words.index('中')]
Out[19]: 100
In [20]: #与列表相比,字典是不是简单多了呢
In [21]: #——————————————————————————————————————————————————————————————
In [22]: #拉锁函数
In [23]: zip(words, location)
Out[23]: <zip at 0x420eeb8>
In [24]: #如果我们用列表展示:
In [25]: [('中', 100), ('左', 200)]
Out[25]: [('中', 100), ('左', 200)]
In [26]: #要输出上面的值,就:
In [27]: list(zip(words, location))
Out[27]: [('中', 100), ('左', 200)]
In [28]: #它可以转化成我们想要的值:
In [29]: #例如
In [30]: new_var = list(zip(words, location))
In [31]: dict(new_var)
Out[31]: {'中': 100, '左': 200}
In [32]: #它是非常的好,非常的便捷的。
In [33]: #它拉,取块,都是可以的
In [34]: zip([1,2], [3,4], [4,5])
Out[34]: <zip at 0x420ef58>
In [35]: list(zip([1,2], [3,4], [4,5]))
Out[35]: [(1, 3, 4), (2, 4, 5)]
In [36]: #每一个元素块,都可以变成3个元素块
In [37]: #————————————————————————————————————————————————————————————
In [38]: #其它东西自己来表示
In [39]: #例如:
In [40]: students = ['wong', 'li', 'sun', 'zhao', 'qian']
In [41]: #实验前
In [42]: dict.fromkeys(students, 10)
Out[42]: {'li': 10, 'qian': 10, 'sun': 10, 'wong': 10, 'zhao': 10}
In [43]: #这时我们生成一个非常便捷的字典就是“fromkeys”
In [44]: #————————————————————————————————————————————————————————————
In [45]: #访问字典中的值
In [46]: #比方说我们用money
In [47]: money = dict.fromkeys(students, 10)
In [48]: money['wong']
Out[48]: 10
In [49]: a = money.get('ww')
In [50]: print(a)
None
In [51]: #如果值不存在,get值就会给我们返回一个“没有值”(None),而“money['ww']则会报错。
In [52]: a = money.get('ww', '100')
In [53]: print(a)
100
In [54]: #————————————————————————————————————————————————————————————
In [55]: #通过字典生成两个列表
In [56]: money.keys()
Out[56]: dict_keys(['wong', 'li', 'sun', 'zhao', 'qian'])
In [57]: money.values()
Out[57]: dict_values([10, 10, 10, 10, 10])
In [58]: money.items()
Out[58]: dict_items([('wong', 10), ('li', 10), ('sun', 10), ('zhao', 10), ('qian', 10)])
In [59]: #这对我们以后便利我们的变量有很大用处。
In [60]: #————————————————————————————————————————————————————————————
In [61]: money.pop('wong')
Out[61]: 10
In [62]: money
Out[62]: {'li': 10, 'qian': 10, 'sun': 10, 'zhao': 10}
In [63]: #这是删除变量中的字符
In [64]: #如果我们再删没有的,它就会报错。
In [65]: #————————————————————————————————————————————————————————————
In [66]: ##增加值
In [67]: money['wong'] = 100
In [68]: money
Out[68]: {'li': 10, 'qian': 10, 'sun': 10, 'wong': 100, 'zhao': 10}
In [69]: #赋值是可以的
In [70]: #————————————————————————————————————————————————————————————
In [71]: #但是不能用一个不存在的访问它
In [72]: money['nihao']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-72-ddc6bbea4252> in <module>()
----> 1 money['nihao']
KeyError: 'nihao'
In [73]: #————————————————————————————————————————————————————————————
In [74]: money
Out[74]: {'li': 10, 'qian': 10, 'sun': 10, 'wong': 100, 'zhao': 10}
In [75]: money.setdefault('li',100)
Out[75]: 10
In [76]: #它就是说,如果变量里面有这个值,就报出来,没有的话就赋值(加)进去
In [77]: money.setdefault('haha', 1000)
Out[77]: 1000
In [78]: money
Out[78]: {'haha': 1000, 'li': 10, 'qian': 10, 'sun': 10, 'wong': 100, 'zhao': 10}
In [78]:
In [79]: #这样就进去了。
In [80]: print("\n本次“只读课堂”的python教程就到这了,欢迎继续收看!\n")
本次“只读课堂”的python教程就到这了,欢迎继续收看!