Python中相见恨晚的技巧

[[393011]]

 话不多说,直接开干,攒了很久!

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) 

 12. 移除列表中重复元素

 
 
 
  1. items = [2,2,3,4,1] 
  2. print(list(set(items))) 

 13. **kwargs

可变长参数,是一个字典。

词典对象前面的双星号可以让你把该词典的内容作为命名参数输入到函数中。词典的秘钥是参数名,值是传递给函数的值。你甚至不需要称它为 kwargs!

 
 
 
  1. dictionary = {'a': 1, 'b': 2} 
  2.  
  3. def func(**kwargs) 
  4.   for key in kwargs: 
  5.      print('key:'key'value:',kwargs[key]) 

 14. 列表推导式

可以用一行代码完全列表中的数据操作

 
 
 
  1. numbers = [1, 2, 3, 4, 5, 6] 
  2. y = [x for x in numbers if x % 2 == 0] 
  3. print(y)   //[2, 4, 6] 

 15. map函数

 
 
 
  1. x = [1, 2, 3] 
  2. y = map(lambda x : x + 1 , x) 
  3. print(y)  //[2, 3, 4] 

 【编辑推荐】

  1. 在Ubuntu Linux上安装Windows 10的最简单方法
  2. 9个Linux 常用查看系统硬件信息命令(实例详解)
  3. 一文告诉你为什么有那么多人在炒币?
  4. 推荐 10 个标星 100 K 的 GitHub 开源项目
  5. 甚至连Excel都落于下风!WPS这些功能你都知道吗

 

THE END