本文共 2468 字,大约阅读时间需要 8 分钟。
# #九宫格:# 1|2|3# 4|5|6# 7|8|9# 横排相加=15,竖排相加=15,两对角相加等于15num=[]for i in range(1,10): num.append(i)#遍历x、y,当x!=y时,再遍历z,x!=z,y!=z,三个数就都不一样L=[(x,y,z) for x in num for y in num if x!=y for z in num if x!=z and y!=z and x+y+z==15]for L1 in L: for L2 in L: if set(L1) & set(L2): #set集合,取出的第一排不能等于第二排 continue for L3 in L: if set(L1) & set(L2) & set(L3): #第一、二、三排都不等 continue elif L1[0]+L2[0]+L3[0] != 15: #竖排不等的话就跳过,横排肯定是相等的,所以不用判断 continue elif L1[1]+L2[1]+L3[1] != 15: continue elif L1[1]+L2[1]+L3[1] != 15: continue elif L1[0]+L2[1]+L3[2] != 15: #两对角不等的话就跳过 continue elif L1[2]+L2[1]+L3[0] != 15: continue else: print(''' {0}|{1}|{2} {3}|{4}|{5} {6}|{7}|{8} '''.format(L1[0],L1[1],L1[2],L2[0],L2[1],L2[2],L3[0],L3[1],L3[2]))
def f(x,l=[]):
for i in range(x):l.append(i*i)print(l)f(2)#输出什么[0, 1]f(3,[3,2,1])#结果: [3, 2, 1, 0, 1, 4]f(x=3, l=[])#结果: [0, 1, 0,1,4]
函数的额关键字:
def 定义函数return 返回这,后面代码不执行pass 滤过exit(1) 直接退出函数的参数
*args tuple参数,对应赋值*kwargs dict参数,对应赋值fun(args, **kwargs)fun(1, 2, 3, 4, 5, a=10, b=40)def fun(a,*args,**kwargs): print('a={0}\nargs={1}\nkwargs={2}\n'.format(a,args,kwargs))fun(1,2,3,4,5,k=1,b=2)结果:a=1args=(2, 3, 4, 5)kwargs={'b': 2, 'k': 1}
都是可以通过代码逻辑实现的。
都是可以通过代码逻辑实现的但是你写的函数的负责程序,或者算法不一定有人家内置的好reduce:
from functools import reducedef fun(x,y): return x+yprint(reduce(fun,[1,2,3,4,5]))
结果:reduce:列表里一个个元素通过fun函数相加
15map:def fun(x): return x*2for i in map(fun,[1,2,3,4,5]): print(i)结果:map在列表里每一个元素遍历246810
唯一用的比较多的,就是sorted:
sorted(iterable, key, reverse)print(sorted([1, 4, 342, 3, 45, 76, 435, 34], reverse=True)
字典有三种初始化的方法:
d1 = dict(a=1, b=2)d2 = {"a": 1, "b": 2}d3 = dict([("a", 1), ("b", 2)])print(d1, d2, d3)
print([x for x in range(10)])
def test(): a = 1 for i in range(1, 10): yield i #return i a += 1 #return i print(a)for i in test(): print(i)
#return和yield的区别
#return 返回一次就退出函数#yiele 每次都返回,但是下一次取值时,从上一次yield的下一行开始字典排序:
import codecswith codecs.open('passwd', 'r') as f: l=sorted(f.readlines(), key=lambda item:int(item.split(':')[2]))with codecs.open('sortPasswd', 'w') as f: f.writelines(l)
转载于:https://blog.51cto.com/jacksoner/2066211