1. 交换变量值
这个应该比较简单,但是日常用很容易忽略。
- a, b = 5, 10
- print(a, b) //5, 10
- a, b = b, a
- print(a, b) //10, 5
2. 将列表中所有元素组合成字符串
这个其实也是一个基本语法
- a = ['python', 'java', 'c++', 'go']
- print(','.join(a)) //python,java,c++,go
3. 查找列表中频率最高的值
感觉用 Python 刷算法题是不是很爽?
- a = [1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4]
- print(max(set(a), key = a.count))
4. 检查两个字符串是不是由相同字母打乱顺序组成
- from collections import Counter
- a = 'abcdefg'
- b = 'adcbgfb'
- print(Counter(a) == Counter(b))
5. 反转字符串、列表
这个用 Java 也是一句话就可以实现
- a = 'dadabjdnakdmnkafad'
- print(a[::-1])
- num = 1343453535
- print(int(str(num)[::-1]))
- a = [1,3,554,64,2]
- print(a[::-1])
6. 转置二维数组
- origin = [['a', 'b'], ['c', 'd'], ['e', 'f']]
- transposed = zip(*origin)
- print(list(transposed ))
7. 链式比较
这个比较符合数学上的比较习惯
- b = 6
- print(4 < b < 7)
- print(1 == b < 9)
8. 三元运算符
其实 Python 中是没有三元运算符的,不过我们可以用另外一种方式替代:
- b = 'B'
- c = 'C'
- flag = True
- a = b if flag else c
9.链式函数调用
- def product(a, b):
- return a * b
- def add(a, b):
- return a + b
- b = True
- print((product if b else add)(5 ,7))
10. for-else 语法
注意不是 if-else,而是 for 循环可以使用 else:
- a = [1, 2, 3, 4, 5]
- for el in a:
- if(el == 0)
- print('找到 0 了')
- else:
- print('没有找到 0')
11. 合并字典
- d1 = {'a': 1}
- d2 = {'b': 2}
- print(**d1, **d2) # python3.5支持
- print(dict(d1.items() | d2.items()))
- d1.update(d2)
- print(d1)