朋友们,如需转载请标明出处:blog.csdn.net/jiangjunsho…
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好的理解人工智能技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是要由所写,所以不如我的人工智能技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!
之前提到过,因为字典不是序列,它们并不包含任何可靠的从左至右的顺序。这意味着如果我们建立一个字典,并将它打印出来,它的键也许会以与我们输入时不同的顺序出现:
>>> D = {'a': 1,'b': 2,'c': 3}
>>> D
{'a': 1,'c': 3,'b': 2}
12345
那么,如果在一个字典的元素中,我们确实需要强调某种顺序的时候,应该怎样做呢?一个常用的解决办法就是通过字典的keys方法收集一个键的列表,使用列表的sort方法进行排序,然后使用Python的for循环逐个进行显示:
>>> Ks = list(D.keys()) # Unordered keys list
>>> Ks # A list in 2.6,"view" in 3.0: use list()
['a','c','b']
>>> Ks.sort() # Sorted keys list
>>> Ks
['a','b','c']
>>> for key in Ks: # Iterate though sorted keys
print(key,'=>',D[key]) # <== press Enter twice here
a => 1
b => 2
c => 3
123456789101112131415161718192021
这是一个有三个步骤的过程,然而,就像我们将会在稍后的文章中看到的那样,在最近版本的Python中,通过使用最新的sorted内置函数可以一步完成。sorted会返回结果并对各种对象类型进行排序,在这个例子中,自动对字典的键排序:
>>> D
{'a': 1,'c': 3,'b': 2}
>>> for key in sorted(D):
print(key,'=>',D[key])
a => 1
b => 2
c => 3
123456789101112131415
for循环是遍历一个序列中的所有元素并按顺序对每一元素运行一些代码的简单并有效的一种方法。一个用户定义的循环变量(这里是key)用作每次运行过程中当前元素的参考量。我们例子的实际效果就是打印这个自身是无序的字典的键和值,以排好序的键的顺序输出。
for循环以及与其作用相近的while循环,是在脚本中编写重复性任务语句的主要方法。for循环可以使用在任意一个序列对象,并且就像列表解析一样,甚至可以用在一些不是序列的对象中。例如,for循环可以步进循环字符串中的字符,打印每个字符的大写:
>>> for c in 'spam':
print(c.upper())
S
P
A
M
1234567891011
Python的while循环是一种更为常见的排序循环工具,它不仅限于遍历序列:
>>> x = 4
>>> while x > 0:
print('spam!' * x)
x -= 1
spam!spam!spam!spam!
spam!spam!spam!
spam!spam!
spam!