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]

以上就是Python中相見恨晚的技巧(記得收藏)的詳細內容,更多關於python技巧的資料請關註WalkonNet其它相關文章!

推薦閱讀:

    None Found