Python的变长参数 def foo1(*args): for arg in args: print arg def foo2(**kargs): for key in kargs: print key, kargs[key] def foo3(*args, **kargs): print "args:" for arg in args: print arg print "kargs": for key in kargs: print key, kargs[key
题目: 求一个数组的最长递减子序列比 , 如随机生成一组序列 {8,9,6,3,6,2,3,4} 求得最长递减序列 {9,8,6,4,3,2} list=[3,3,3,3,6,2,3,4] //冒泡排序 n=len(list) for i in range(0,n-2): for k in range(0,n-1): if list[k+1]>list[k]: list[k+1],list[k]=list[k],list[k+1] print(list) result=[] for i in
def incSeq(seq): start = 0 for i in xrange(1, len(seq)): if seq[i] < seq[i-1]: yield start, i - start start = i maxIncSeq = reduce(lambda x,y: x if x[1]>y[1] else y, incSeq(seq)) 得到最长递增子串长度及起始位置,时间复杂度O(n).
def get_pwd(str, num):#str为可选字符集,num为密码长度 if(num == 1): for x in str: yield x else: for x in str: for y in get_pwd(str, num-1): yield x+y strKey=""#可选字符集 for i in range(33,127):#所有可见字符 strKey+=chr(i) for x in get_pwd(strKey,17): #x+="0823}&
def fun(a, b, *args): print(a) print(b) print(args) print("="*30) ret = a + b for i in args: ret += i return ret print(fun(1,2,3,4)) 结果: 1 2 (3, 4) ============================== 10 1,2分别赋值给a,b,剩下的参数以元组的形式赋值给args 字典形式参数: def fun(a, b, *args, **k