Python开发有哪些进阶技巧?这是知乎上的最后一个问题。我在这里总结了一些常用的技巧。它可能不是很高级,但掌握这些至少可以让你的代码看起来像Pythonic。如果你还在用类C语言的风格来写,你很可能会在codereview中被吐槽。列表理解>>>chars=[cforcin'python']>>>chars['p','y','t','h','o','n']字典理解>>>dict1={'a':1,'b':2,'c':3,'d':4,'e':5}>>>double_dict1={k:v*2for(k,v)indict1。items()}>>double_dict1{'a':2,'b':4,'c':6,'d':8,'e':10}集合推导>>>set1={1,2,3,4}>>>double_set={i*2foriinset1}>>>double_set{8,2,4,6}组合字典>>>x={'a':1,'b':2}>>>y={'c':3,'d':4}>>>z={**x,**y}>>>z{'a':1,'b':2,'c':3,'d':4}复制列表>>>nums=[1,2,3]>>>nums[::][1,2,3]>>>copy_nums=nums[::]>>>copy_nums[1,2,3]反向列表>>>reverse_nums=nums[::-1]>>>reverse_nums[3,2,1]PACKING/UNPACKING变量交换>>>a,b=1,2>>>a,b=b,a>>>a2>>>b1高级解包>>>a,*b=1,2,3>>>a1>>>b[2,3]或>>>>a,*b,c=1,2,3,4,5>>>a1>>>b[2,3,4]>>>c5函数返回多个值(其实是自动打包成元组),然后将解包分配给4个变量>>>deff():...return1,2,3,4...>>>a,b,c,d=f()>>>a1>>>d4列表合并成字符串>>>"".join(["I","Love","Python"])'ILovePython'链比较>>>ifa>2anda<5:...pass...>>>if2>>001122in而不是or>>>ifx==1orx==2orx==3:...pass...>>>ifxin(1,2,3):...传递字典而不是多个ifelsedeffun(x):ifx=='a':return1elifx=='b':return2else:returnNonedeffun(x):return{"a":1,"b":2}.get(x)带下标索引的枚举>>>fori,einenumerate(["a","b","c"]):...print(i,e)...0a1b2c生成器注意区分列表推导,生成器效率更高>>>g=(i**2foriinrange(5))>>>g
