简洁的表达式
- 快速构建一个字典序列
iter = zip('abcd', range(4))
d = dict(iter)
print(d)
# {'a': 0, 'b': 1, 'c': 2, 'd': 3}
- 三目运算符
Tsign = 'ok ' if True else 'ko'
Fsign = 'ok' if False else 'ko'
print(f'Tsign:{Tsign}; Fsign:{Fsign}')
# Tsign:ok ; Fsign:ko
- 推导生成类表,推导生成字典
{x:y for x in 'abcd' for y in range(4)}
# {'a': 3, 'b': 3, 'c': 3, 'd': 3}
[i for i in 'abcd']
#['a', 'b', 'c', 'd']
- 列表推导的几种延伸写法
[ x for x in range(10) if x%2==0 ]
# [0, 2, 4, 6, 8]
[ x for x in range(30) if x%2==0 and x%3==0 ]
# [0, 6, 12, 18, 24]
[ x+1 if x >= 5 else x*5 for x in range(10)]
# [0, 5, 10, 15, 20, 6, 7, 8, 9, 10]
l = [[1,2],[3,4],[5,6]]
[ y for x in l for y in x]
# [1, 2, 3, 4, 5, 6]
排序
- heapq的使用
import heapq
nums = [ 1,3,2,5,4,9,0,8]
# 取值前三大的元素
heapq.nlargest(3, nums)
# 取前三小的元素
heapq.nsmallest(3, nums)
# 函数原型: heapq.nlargest(3, nums, key=lambda x: x)
# 函数原型: heapq.nsmallest(3, nums, key=lambda x: x)
过滤数据
- filter的使用,其实还有map
nums = [ 1,3,2,5,4,9,0,8]
list(filter(lambda x: x>5, nums))
# [9, 8]
说到这里就有要说reduce,reduce在python3中调整到了functools,具体使用在此不赘述了。
版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创
转载请注明:出处来自王晨曦个人站点 » Python实用技巧随笔记录