gpt4 book ai didi

3个 Python 编程技巧

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章3个 Python 编程技巧由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

今天分享 3 个 Python 编程小技巧,来看看你是否用过?

1、如何按照字典的值的大小进行排序

我们知道,字典的本质是哈希表,本身是无法排序的,但 Python 3.6 之后,字典是可以按照插入的顺序进行遍历的,这就是有序字典,其中的原理,可以阅读为什么 Python3.6 之后字典是有序的.

知道了这一点,就好办了,先把字典的键值对列表排序,然后重新插入新的字典,这样新字典就可以按照值的大小进行遍历输出。代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> xs = { 'a' : 4 , 'b' : 3 , 'c' : 2 , 'd' : 1 }
>>> for k,v in xs.items(): #遍历字典
...     print (k,v)
...
a 4
b 3
c 2
d 1
>>> new_order = sorted (xs.items(), key = lambda x: x[ 1 ]) #对字典的键值对列表排序
 
>>> new_xs = { k : v for k,v in new_order} #有序列表插入新的字典
>>> new_xs
{ 'd' : 1 , 'c' : 2 , 'b' : 3 , 'a' : 4 }
>>> for k,v in new_xs.items(): ##新字典的输出就是有序的
...     print (k,v)
...
d 1
c 2
b 3
a 4

对列表的排序,你还可以使用如下方法:

?
1
2
3
>>> import operator
>>> sorted (xs.items(), key = operator.itemgetter( 1 ))
[( 'd' , 1 ), ( 'c' , 2 ), ( 'b' , 3 ), ( 'a' , 4 )]

2、优雅的一次性判断多个条件

假如有三个条件,只要有一个为真就可以通过,也许你会这么写:

?
1
2
3
4
x, y, z = 0 , 1 , 0
 
if x = = 1 or y = = 1 or z = = 1 :
     print ( 'passed' )

实际上,以下三种方法更加 Pythonic 。

?
1
2
3
4
5
6
7
8
if 1 in (x, y, z):
     print ( 'passed' )
 
if x or y or z:
     print ( 'passed' )
 
if any ((x, y, z)):
     print ( 'passed' )

最后一个用到了 Python 内置的方法 any() ,any 接受一个可迭代对象作为参数,比如列表或元组,只要其中一个为真,则 any() 方法返回真,用法示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>>> any ([ 'a' ,( 2 , 4 ), 3 , True ]) 
True
>>> any ([ 'a' ,( 2 , 4 ), 3 , False ])
True
>>> any ([ 'a' ,(), 3 , False ])   
True
>>> any (['',(), 0 , False ]) 
False
>>> any (( 'a' ,(), 3 , False ))
True
>>> any (('',(), 0 , False )) 
False
 
## 注意空的可迭代对象返回 False
>>> any (())
False
>>> any ([])
False
>>> any ('')
False
>>> any ({})
False

与 any() 对应的,就是方法 all() ,只有全部为真,才为真,注意空的可迭代对象一直返回真.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> all ([ 'a' ,( 2 , 4 ), 1 , True ]) / / list 都为 "真"
True
>>> all ([ 'a' ,(), 1 , True ])   / / list 元素中有空 tuple
False
>>> all ([ 'a' ,( 2 , 4 ), 0 , True ])
False
>>> all ([ 'a' ,( 2 , 4 ), 3 , False ])
False
   
## 注意空的可迭代对象返回 True
>>> all ([])
True
>>> all (())
True
>>> all ({})
True
>>> all ('')
True

查看帮助文档,可以在解释器输入 help

?
1
2
3
4
5
6
7
8
9
>>> help ( all )
Help on built - in function all in module __builtin__:
 
all (...)
     all (iterable) - > bool
 
     Return True if bool (x) is True for all values x in the iterable.
     If the iterable is empty, return True .
   

3、如何优雅的合并两个字典

** 操作符可以解包字典,这在合并字典时非常有用,比如:

?
1
2
3
4
5
6
7
>>> x = { 'a' : 1 , 'b' : 2 }
>>> y = { 'b' : 3 , 'c' : 4 }
 
>>> z = { * * x, * * y}
 
>>> z
{ 'c' : 4 , 'a' : 1 , 'b' : 3 }

如果在 Python2.x 中,需要这么做:

?
1
2
3
>>> z = dict (x, * * y)
>>> z
{ 'a' : 1 , 'c' : 4 , 'b' : 3 }

以上就是3个 Python 编程技巧的详细内容,更多关于Python 编程技巧的资料请关注我其它相关文章! 。

原文链接:https://developer.51cto.com/art/202110/685478.htm 。

最后此篇关于3个 Python 编程技巧的文章就讲到这里了,如果你想了解更多关于3个 Python 编程技巧的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com