朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
下面代码展示了如何创建字典并且通过键来存储、访问其中的某项:
% python
>>> D = {'spam': 2,'ham': 1,'eggs': 3} # Make a dictionary
>>> D['spam'] # Fetch a value by key
2
>>> D # Order is scrambled
{'eggs': 3,'ham': 1,'spam': 2}
在上面的代码中,字典被赋值给了一个变量D,其中键’spam’的值为整数2。就像之前我们学习列表时利用偏移索引一样,都是使用方括号,只不过字典是用键来读取,而并不是像列表一样用位置来读取。
另外,注意上面例子的结尾处,字典内键由左至右的次序和原先输入的顺序不同了。这样设计的目的是为了快速执行键查找(也就是散列查找 )。这就是为什么从左至右的顺序操作(例如,分片和合并)不适用于字典的原因。
内置len函数也可用于字典,它能够返回存储在字典里的元素的数目,或者说是其keys列表的长度。字典的has_key方法以及in操作符提供了某个键存在与否的测试方法,keys方法则能够返回字典中所有的键:
>>> len(D) # Number of entries in dictionary
3
>>> 'ham' in D # Key membership test alternative
True
>>> list(D.keys()) # Create a new list of my keys
['eggs','ham','spam']
注意上面列出的最后一个示例的语法。在Python 3.0中,我们必须将其放到一个list调用中——因为Python 3.0中的keys返回一个迭代器,而不是一个列表。加上list调用才迫使它一次生成所有的值。而在Python 2.6中,keys构建并返回一个真正的列表,因此,list调用就不需要了。
注意:字典中的键的顺序是随意的,因此,如果你的字典打印出来的顺序与这里给出的不同,不必感到惊诧。