1. 交換變量
有時候,當我們要交換兩個變量的值時,一種正常的方法是建立一個臨時變量,然後用它來進行交換。比如:
# 輸入
a = 5
b = 10
#建立臨時變量
temp = a
a = b
b = temp
print(a)
print(b)
但在Python中,其實我們有一種更簡潔的寫法:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYzMmJTMxUTZ5YmMxATNzgjMwQDNzUTMvwVZnFWbp1yYnB3LcV2ZyFGbvwVbvNmLwRXY0NHcuMDcvw1LcpDc0RHaiojIsJye.jpg)
2. 将list中的所有元素轉為單個字元串
清單和字元串是Python中最常見的資料類型,它們會遇到互相轉換的需要。那麼,我們該怎麼把list中的所有元素轉為字元串呢?
3. 查找list中出現次數最多的元素
給定一個包含多個元素的list,讓你查找其中出現次數最多的元素,你會怎麼做?在下圖中,我們介紹了兩種方法,其中第一種是利用max()函數的key參數,第二種則是使用Counter。
4. 判斷兩個字元串是否是anagram
所謂anagram,就是兩個詞所用的字母及其個數都是一樣的,但是它們字母的位置不一樣,比如abc,bac,acb。在Python中,Counter可以解決這個問題,
5. 字元串倒轉
字元串倒轉,就是把1234轉成4321。下面我們介紹了三種方法:
方法一:最簡單的切片法,a[::-1]就相當于a[尾:頭:-1]。
方法二:用Python自帶reversed()函數,它可被用于list倒轉。
方法三:第三種是通過倒轉資料類型和切片倒轉整數。
6. list倒轉
和字元串倒轉類似,切片法也可以被用于list倒轉,如下面的第一種方法。第二種方法調用的是上面提到的reversed()函數。
7. 二維矩陣轉置
如果要轉置矩陣,可以直接使用使用zip()函數。除此之外,沒有比import numpy更簡單的方法了。
8. 鍊式比較
如果想輸出數組中介于4-7之間的元素,java是這麼寫的:if( b > 4 && b < 7){ },但Python更人性化。包括最後一句1 == b < 20,這和C、java也很不一樣。
9. 鍊式調用
在python中實作鍊式調用隻需在函數傳回對象自己就行了。
10. 複制list
如果是剛學習Python的C使用者,你可能會想寫b = a,但這是錯的。在Python中,變量指向的是某個對象的标簽。也就是說,按照這種的寫法,b和a指向的是記憶體中的同一個清單,對b操作,就相當于對a操作。是以正确的寫法有以下幾種:
方法一:b=a[:]。
方法二:b=list(a)。
方法三:使用Python 3的copy()函數,直接複制list,類似a[:]。
方法四:使用copy.deepcopy()。
11. 判斷一個key是否在字典中
如果目标key不在字典中,以下代碼會傳回None或default。
12. 按value排序字典
Python的内置字典資料類型是無序的,而key可以被用來擷取對應的value。有時我們需要根據value對字典中的item進行排序輸出。方法如下所示:
方法一:用sorted函數排序,其中key參數是lamda表達式。
方法二:用operator.itemgetter而不是lamda表達式進行排序。
方法三:如果隻需得到排序後的key,可用.get。
13. for ... else文法
14. 用逗号分隔list
下面分别是字元串list、數字list和混合list的逗号分隔方式。
15. 合并字典
方法一:Python 3.5可以存在重複key值,print({**d1, **d2})。
方法二:在記憶體中建立兩個清單,再建立第三個清單,拷貝完成後,建立新的dict,删除掉前三個清單。
方法三:d1.update()。
16. list中的最小和最大索引
17. 從list中删除重複項
方法一:把list轉成set,去除重複項,再轉回list。