Python - 技巧总结 - Tips & Tricks

目录

一、and,or

二、三目运算符的四种写法

三、else with loop - 循环执行完后执行else

四、list 倒叙遍历 - 先倒叙,再遍历

五、dict 生成字典

5-1 dict() vs {}

六、try 中的 return

七、enumerate 活用

7-1 遍历列表生成字典


参考学习 - Python Tips & Tricks

github wtfpython - 举例python内特别的功能特性

一、and,or

  • 在不加括号时候, and优先级大于or
  • x or y 的值只可能是x或y. x为真就是x, x为假就是y
  • x and y 的值只可能是x或y. x为真就是y, x为假就是x
# res = a or b ,当 a ≠ 0 即 res = a
print(1 or 5)  # 1
# res = a or b ,当 a = 0 即 res = b
print(0 or 5) # 5

# res = a and b ,当 a ≠ 0 即 res = b
print(1 and 5) # 5
# res = a and b ,当 a = 0 即 res = a
print(0 and 5) # 0

二、三目运算符的四种写法

b = 2
a = 1 if b > 1 else 0 # 正常人版本
# 1

a = b > 1 and 1 or 0 # 使用了短路逻辑,不推荐,因为当涉及布尔值时会出错
# 1

a = (1, 0)[b < 1] # 完全不推荐, 不是元组下标的正确用法
# 1

b = False # 短路逻辑出错例子
a = b > 1 and 1 or 0 
# 0

三、else with loop - 循环执行完后执行else

for x in range(1,10):
    pass
else:
    print("final")

四、list 倒叙遍历 - 先倒叙,再遍历

a = range(0,10)
for x in a[: : -1]:
    print(x,end=' ')
>>> 9 8 7 6 5 4 3 2 1 0

五、dict 生成字典

# dict constructor
para = dict(
  a=1,
  b=2
)

# dict literal
para = {
  "a" : 1,
  "b" : 2
}

5-1 dict() vs {}

dict vs {} 学习参考

  • 对于空字典和填充字典操作,{} 速率都高于 dict() 的执行效率,2-3倍
  • dict 接受迭代器

六、try 中的 return

  • 当在 "try...finally" 语句的 try 中执行 return, break 或 continue 后, finally 子句依然会执行.
  • 函数的返回值由最后执行的 return 语句决定. 由于 finally 子句一定会执行, 所以 finally 子句中的 return 将始终是最后执行的语句.
def some_func():
    try:
        return 'from_try'
    finally:
        return 'from_finally'

res = some_func()
# from_finally

七、enumerate 活用

7-1 遍历列表生成字典

some_list = ['a', 'b', 'c', 'd']

some_dict = {}
for i, some_dict[i] in enumerate(some_list):
    pass
print(some_dict)  # {0: 'a', 1: 'b', 2: 'c', 3: 'd'}

# 简化版本
some_dict = {i: k for i, k in enumerate(some_list)}
# {0: 'a', 1: 'b', 2: 'c', 3: 'd'}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值