reversed(seq) :接受一个序列(列表)、字符串作为参数,返回一个以逆序访问的迭代器
reverse():list.reverse() 原地翻转列表,只接受列表对象
sorted(iterable, cmp=None, key=None, reverse=False):接受一个可迭代对象作为参数,返回一个有序数列
reverse = True 是从小到大排列,func key 参数指定则按照指定的方式比较各个元素(如key = len,即按照长度进行排序)
list.sort() sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort()
list.sort() 与reverse()相似,原地进行排序
alist[::-1]
str[::-1]
alist.reverse()
print alist
list(reversed(alist))
列表 ---> 字符串
''.join(alist)
字符串 ---> 列表
list(astr)
装饰器本身是一个函数,主要工作方式将被装饰的类或函数当做参数传递给装饰器函数。
装饰器只是把某个不得改动的函数(a)放到另一个函数(b)中, 在b里面调用a, 在调用前后就可以做所谓的看起来像装饰的工作了。
b = a(b)
stack overflow 知乎
*args表示任何多个无名参数,它是一个tuple
**kwargs表示关键字参数,它是一个dict
input:
def foo(*args,**kwargs):
print 'args=',args
print 'kwargs=',kwargs
print '**********************'
if __name__=='__main__':
foo(1,2,3)
foo(a=1,b=2,c=3)
foo(1,2,3,a=1,b=2,c=3)
foo(1,'b','c',a=1,b='b',c='c')
output:
args= (1, 2, 3)
kwargs= {}
**********************
args= ()
kwargs= {'a': 1, 'c': 3, 'b': 2}
**********************
args= (1, 2, 3)
kwargs= {'a': 1, 'c': 3, 'b': 2}
**********************
args= (1, 'b', 'c')
kwargs= {'a': 1, 'c': 'c', 'b': 'b'}
**********************