>>> listone = [2, 3, 4] >>> listtwo = [2*i for i in listone if i > 2] >>> print(listtwo) [6, 8]
这里我们为满足条件(if i > 2)的数指定了一个操作(2*i),从而导出一个新的列表。注意原 来的列表并没有发生变化。在很多时候,我们都是使用循环来处理列表中的每一个元素,而使 用列表综合可以用一种更加精确、简洁、清楚的方法完成相同的工作
2.在函数中接收元组和列表
def powersum(power, *args): total = 0 for i in args: total += pow(i, power) return total >>> powersum(2, 3, 4) 25
由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的 是**前缀,多余的参数则会被认为是一个字典的键/值对。
3.lambda形式
lambda语句被用来创建新的函数对象,并且在运行时返回它们。
def make_repeater(n): return lambda s: s*n twice = make_repeater(2) print(twice('word')) print(twice(5)) ------------------- wordword 10
这里,我们使用了make_repeater函数在运行时创建新的函数对象,并且返回它。lambda语句用 来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式 的值被这个新建的函数返回。注意,即便是print语句也不能用在lambda形式中,只能使用表达 式。
4.assert语句
assert语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个 元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这 种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError
>>> mylist = ['item']
>>> assert len(mylist) >= 1
>>> mylist.pop()
'item'
>>> assert len(mylist) >= 1
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AssertionError
转载请注明作者与出处:http://blog.csdn.net/u013511642 王小涛_同學
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u013511642/article/details/47700489