相见恨晚的Python技巧梳理

1. 交换变量值

这个应该比较简单,但是日常用很容易忽略。


  1. a, b = 5, 10 
  2. print(a, b)   //5, 10 
  3. a, b = b, a 
  4. print(a, b)   //10, 5 

 2. 将列表中所有元素组合成字符串

这个其实也是一个基本语法


  1. a = ['python''java''c++''go'
  2. print(','.join(a))  //python,java,c++,go 

 3. 查找列表中频率最高的值

感觉用 Python 刷算法题是不是很爽?


  1. a = [1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4] 
  2. print(max(set(a), key = a.count)) 

 4. 检查两个字符串是不是由相同字母打乱顺序组成


  1. from collections import Counter 
  2.  
  3. a = 'abcdefg' 
  4. b = 'adcbgfb' 
  5. print(Counter(a) == Counter(b)) 

 5. 反转字符串、列表

这个用 Java 也是一句话就可以实现


  1. a = 'dadabjdnakdmnkafad' 
  2. print(a[::-1]) 
  3.  
  4. num = 1343453535 
  5. print(int(str(num)[::-1])) 
  6.  
  7. a = [1,3,554,64,2] 
  8. print(a[::-1]) 

 6. 转置二维数组


  1. origin = [['a''b'], ['c''d'], ['e''f']] 
  2. transposed = zip(*origin) 
  3. print(list(transposed )) 

 7. 链式比较

这个比较符合数学上的比较习惯


  1. b = 6 
  2. print(4 < b < 7) 
  3. print(1 == b < 9) 

 8. 三元运算符

其实 Python 中是没有三元运算符的,不过我们可以用另外一种方式替代:


  1. b = 'B' 
  2. c = 'C' 
  3. flag = True 
  4. a = b if flag else c 

 9.链式函数调用


  1. def product(a, b): 
  2.    return a * b 
  3.  
  4. def add(a, b): 
  5.    return a + b 
  6.  
  7. b = True 
  8. print((product if b else add)(5 ,7)) 

 10. for-else 语法

注意不是 if-else,而是 for 循环可以使用 else:


  1. a = [1, 2, 3, 4, 5] 
  2. for el in a: 
  3.     if(el == 0) 
  4.        print('找到 0 了'
  5. else
  6.     print('没有找到 0'

 11. 合并字典


  1. d1 = {'a': 1} 
  2. d2 = {'b': 2} 
  3.  
  4. print(**d1, **d2)  # python3.5支持 
  5.  
  6. print(dict(d1.items() | d2.items())) 
  7.  
  8. d1.update(d2) 
  9. print(d1) 
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章