当前位置: 首页 > 后端技术 > Python

教你3个Python编程技巧

时间:2023-03-26 12:42:59 Python

今天分享3个Python编程技巧,看看你用过没有?1.如何根据字典的值进行排序我们知道字典的本质是一个哈希表,不能排序,但是Python3.6之后,可以按照插入的顺序遍历字典,这是一个有序的字典.原理可以看为什么Python3.6之后的字典是有序的。知道这一点,就好办了。先对字典的键值对列表进行排序,然后重新插入新字典,这样就可以根据值的大小遍历并输出新字典。代码如下:>>>xs={'a':4,'b':3,'c':2,'d':1}>>>fork,vinxs.items():#traversedictionary...print(k,v)...a4b3c2d1>>>new_order=sorted(xs.items(),key=lambdax:x[1])#sort键列表-字典的值对>>>new_xs={k:vfork,vinnew_order}#Orderedlistinsertedintoanewdictionary>>>new_xs{'d':1,'c':2,'b':3、'a':4}>>>fork,vinnew_xs.items():##新字典的输出顺序...print(k,v)...d1c2b3a4对列表进行排序,你还有你可以使用下面的方法:>>>importoperator>>>sorted(xs.items(),key=operator.itemgetter(1))[('d',1),('c',2),('b',3),('a',4)]2.多个条件的优雅一次性判断如果有三个条件,只要其中一个为真,就可以通过,也许你会这样写:x,y,z=0,1,0ifx==1ory==1orz==1:print('passed')其实下面这三个方法比较Pythonicif1in(x,y,z):print('passed')ifxoryorz:print('passed')ifany((x,y,z)):print('passed')最后一个使用Python的内置方法any(),any接受一个可迭代对象作为参数,比如列表或者元组,只要当其中之一为真时,any()方法返回真。使用示例如下:>>>any(['a',(2,4),3,True])True>>>any(['a',(2,4),3,False])真>>>任何(['a',(),3,False])真>>>任何(['',(),0,False])假>>>任何(('a',(),3,False))True>>>any(('',(),0,False))False##注意一个空的迭代返回False>>>any(())False>>>any([])False>>>any('')False>>>any({})False对应any(),也就是方法all(),只有全部为真才为真。请注意,空的可迭代对象总是返回true>>>all(['a',(2,4),1,True])//列表为“True”True>>>all(['a',(),1,True])//有是列表中的一个空元组elementFalse>>>all(['a',(2,4),0,True])False>>>all(['a',(2,4),3,False])False##注意空的可迭代对象返回True>>>all([])True>>>all(())True>>>all({})True>>>all('')True查看帮助文档,你可以在解释器中输入帮助:>>>help(all)Helponbuilt-infunctionallinmodule__builtin__:all(...)all(iterable)->boolReturnTrueifbool(x)is对于可迭代对象中的所有值x都为真。如果可迭代对象为空,则返回True。3.如何优雅地合并两个字典操作符可以解包字典,这在合并字典时非常有用,如:>>>x={'a':1,'b':2}>>>y={'b':3,'c':4}>>>z={**x,**y}>>>z{'c':4,'a':1,'b':3}如果你在Python2.x中,你需要这样做:>>>z=dict(x,**y)>>>z{'a':1,'c':4,'b':3}好的,我的分享到此结束。如果其他人有更好的提示。欢迎大家在评论中讨论!