Python中相見恨晚的技巧
作者:Python可樂
本篇帶給大家在Python中的一些技巧,希望能夠幫助到你!
話不多說,直接開干,攢了很久!
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)
12. 移除列表中重復元素
- items = [2,2,3,4,1]
- print(list(set(items)))
13. **kwargs
可變長參數,是一個字典。
詞典對象前面的雙星號可以讓你把該詞典的內容作為命名參數輸入到函數中。詞典的秘鑰是參數名,值是傳遞給函數的值。你甚至不需要稱它為 kwargs!
- dictionary = {'a': 1, 'b': 2}
- def func(**kwargs)
- for key in kwargs:
- print('key:', key, 'value:',kwargs[key])
14. 列表推導式
可以用一行代碼完全列表中的數據操作
- numbers = [1, 2, 3, 4, 5, 6]
- y = [x for x in numbers if x % 2 == 0]
- print(y) //[2, 4, 6]
15. map函數
- x = [1, 2, 3]
- y = map(lambda x : x + 1 , x)
- print(y) //[2, 3, 4]
【編輯推薦】
責任編輯:姜華
來源:
今日頭條