第一部分:内置range的应用
Python中,内置函数range()会经常的被应用于生成可迭代对象。在程序开发时,它的身影无处不在,控制循环,控制数值范围等。
了解一个函数对象,首先要知晓对象参数的使用。Python中range对象格式为:
range ( [start , ] end [ , step])
三种用法参数设置range( stop )、range( start , stop )、rang( start , stop , step )。step为步长,类型为整数,换种说法就是间隔数。其中,如果不加以设定,start默认值为0,而step默认值为1。
range( )内置函数有多种用法,使用得当,可提高程序运行效率。
>>> tuple(range(8 ,16,3))
(8, 11, 14)
>>> tuple(range(12,3,-2))
(12, 10, 8, 6, 4)
range根据原理性作用,常用于控制有限循环。
>>> for i in range(0, 30, 5):
... print(i)
...
0
5
10
15
20
25
第二部分:序列、迭代对象的多样化处理
前面的内容,已经基本了解了列表、元组,字典、集合的基本知识。现在我们来对他们进行简单的对象操作。就以列表举例,它是一个序列,系列必然有一定的顺序,考虑一个函数sorted(),对对象进行排序操作,另外一个类似的函数sort(),这两者应用有区别且返回顺序都是由低到高。
>>> sation=[5,2,1,3,6,7]
>>> sorted(sation)
[1, 2, 3, 5, 6, 7]
>>> sation
[5, 2, 1, 3, 6, 7]
>>> sation.sort()
>>> sation
[1, 2, 3, 5, 6, 7]
发现区别没有?应该很直白吧,sort是对原列表直接进行排序操作,返回列表是建立在原列表的基础上的,而sorted不同,它在原列表排序基础上,产生了新列表,返回结果不影响原列表。
同样,有相同功能的排序函数,reverse()和reversed(),功能是逆排序,首尾交换。
更高级点排序,Python2.4以后,排序函数指出key的使用,也就是可实现指定参考量进行排序。不过,在这之前我们要了解一下匿名函数lambda,它是指一类无需定义标识符(函数名)的函数或子程序。lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。作用好比一个对象接口。
>>> sation=['apple','bananas','cherry']
>>> sorted(sation,key=len)
['apple', 'cherry', 'bananas']
>>> sorted(sation,key=len,reverse=True)
['bananas', 'cherry', 'apple']
关于sorted更深入的说明,这部分可以多上机实验:
list.sort(iterable,cmp=None, key=None, reverse=False)
iterable就是序列对象;cmp可选参数, 如果指定了该参数会使用该参数的方法进行排序,key上面提过reverse为排序规则,reverse = True 降序, reverse = False 升序(默认)。
>>> sation_tuples = [('apple',12),('banana',15),('cherry',8)]
>>> sorted(sation,key=lambda sation:sation[1])
[('cherry', 8), ('apple', 12), ('banana', 15)]
第三部分:简单的值操作
(1)最值操作
Python提供内置函数max(),min()分别用来求最大值和最小值,对象可以是列表、元组等,操作简便,还支持default参数,指定迭代对象为空时默认返回最大值或者最小值和key参数,用法同于上文sorted。
>>> num1=(12,13)
>>> num2=(15,18)
>>> num3=(8,9)
>>> num=[num1,num2,num3]
>>> numen=max(num,key=lambda num:num[1])
>>> print(numen)
(15, 18)
(2)求和操作
Pyhon中,内置函数sum()可实现求和,支持start参数,控制求和的初始值。
>>> sum(range(1,5))
10
>>> from random import randint
>>> sumen = [randint(1,8) for i in range(5)]
>>> print(sum(sumen))
30
(3)字符串求值操作
内置函数eval()用来计算“字符串”的值,这里的字符串主要是包含了一组表达式,返回值就是表达式的结果,同时,它还可以对字节串进行求值。
>>> eval('8+16')
24
>>> eval(b'56+24')
80
|