python使用进阶小技巧
1.三元运算的使用
#[on_true] if [expression] else [on_false]a, b = 999, 34result = a if a%b==0 else bdef subtract(a,b): return a-bdef add(a,b): return a+bpd = 1print( (subtract if pd else add)(23,5) )
2.列表/字符串的逆序
lis = [1,2,3,4,5]lis[::-1]# print(lis)# [5,4,3,2,1]
3.枚举enumerate的使用
for i,item in enumerate(‘abcdef‘):
print(i,‘ ‘,item)
‘‘‘
0 a
1 b
2 c
3 d
4 e
5 f
‘‘‘
>>> list(enumerate(‘abc‘)) [(0, ‘a‘), (1, ‘b‘), (2, ‘c‘)] >>> list(enumerate(‘abc‘, 1)) [(1, ‘a‘), (2, ‘b‘), (3, ‘c‘)]
4.字典/集合 解析
这个应该用的很多了,大家都熟悉
#下面是ascii表的部分>> _ascii = {chr(i): i for i in range(32,127)}{‘ ‘: 32, ‘!‘: 33, ‘"‘: 34, ‘#‘: 35, ‘$‘: 36, ‘%‘: 37, ‘&‘: 38, "‘": 39, ‘(‘: 40, ‘)‘: 41, ‘*‘: 42, ‘+‘: 43, ‘,‘: 44, ‘-‘: 45, ‘.‘: 46, ‘/‘: 47}
5.字符串组合拼接 / "".join的使用
# 将列表中的所有元素组合成字符串>> a = ["google ","is ","awsome","!"]>> " ".join(a)google is awsome!>> "".join(a)googleisawsome!>> "_".join(a)google_is_awsome_!
6.通过【键】排序字典元素
>> dict = {‘apple‘:10, ‘orange‘:28, ‘banana‘:5, ‘tomato‘:1}>> sorted(dict.items(),key=lambda x:x[1])[(‘tomato‘, 1), (‘banana‘, 5), (‘apple‘, 10), (‘orange‘, 28)]>> sorted(dict.items(),key=lambda x:x[0])[(‘apple‘, 10), (‘banana‘, 5), (‘orange‘, 28), (‘tomato‘, 1)]
7.for else的使用
是的
8.字典get()方法
>> d = {‘A‘:92,‘B‘:93}>> d.get(‘B‘)93>> d.get(‘C‘,‘None‘)‘None‘
7.for else的使用
pd = 11
for i in range(5):
print(i)
if pd==i:
break;
else:
print("yeaho??")
‘‘‘
输出为
0 1 2 3 4 yeaho??
如果pd=3,输出为
0 1 2 3
‘‘‘
8.二维矩阵的转置
# 直接使用zip()函数>> matrix = [[‘a‘,‘b‘],[‘c‘,‘d‘],[‘e‘,‘f‘]]>>list(zip(*matrix))[(‘a‘, ‘c‘, ‘e‘), (‘b‘, ‘d‘, ‘f‘)]