人生苦短:Python裡的17個超讚操作
人生苦短,我選Python”。那麼,你真的掌握了Python嗎?
1. 交換變數
有時候,當我們要交換兩個變數的值時,一種常規的方法是建立一個臨時變數,然後用它來進行交換。比如:
輸入
a = 5
b = 10
建立臨時變數
temp = a
a = b
b = temp
print(a)
print(b)
但在Python中,其實我們有一種更簡潔的寫法:
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倒轉。
方法三:第三種是通過倒轉資料型別和切片倒轉整數。
如果你在學習Python的過程中遇見了很多疑問和難題,可以加-q-u-n 227 -435-450裡面有軟體視訊資料免費
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。
方法二:呼叫collections裡的OrderedDict,和set差不多。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913713/viewspace-2647714/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 人生苦短,要學Python!Python
- 人生苦短,我用 PythonPython
- 人生苦短,我用PythonPython
- Python裡的17個“騷操作”好玩有趣Python
- 人生苦短,我學Python——Python的資料型別中Python資料型別
- 人生苦短我用Python,本文助你快速入門Python
- 人生苦短,我選Python,C++,還是Java?PythonC++Java
- 地產大佬潘石屹:人生苦短,我要學PythonPython
- 人生苦短,我用 ES6 模板
- 誰說Python找工作難?人生苦短,Python工程師你們還好嗎?Python工程師
- 【人生苦短,我學 Python】基礎篇——初步認識(Day1)Python
- 人生苦短,我用k8s--------------k8s的前世今生K8S
- 10 種超讚的 MyBatis 寫法!MyBatis
- 人生苦短,瞭解一下前端必須明白的http知識點前端HTTP
- 2018-12-17 Python操作SQLServer示例PythonSQLServer
- 『無為則無心』Python序列 — 17、Python字串操作的常用APIPython字串API
- 人生苦短,開發用雲 | 如何優雅完成程式設計師的俠客夢?程式設計師
- 超讚的 CSS 陰影技巧與細節CSS
- 一個超讚的計劃管理工具,你一定要試試
- 二維碼生產工具 超讚
- 7數的逆向操作(17)
- 錄屏軟體哪個好用?分享一款超讚的錄屏軟體
- 超詳細!盤點Python中字串的常用操作Python字串
- 超讚!推薦一個專注於Java後端原始碼分析的Github專案!Java後端原始碼Github
- 10個超級有用的Python工具!Python
- 精選 | 6款超讚的最新AI開源專案!AI
- 託管在GitHub上的流行/超讚影片遊戲列表Github遊戲
- 我眼裡的幾種失敗的人生
- wxPython和PyQt誰才是最讚的Python GUI庫PythonQTGUI
- JS 裡的資料型別及幾個操作JS資料型別
- orjson,一個超實用的python庫JSONPython
- 談 C++17 裡的 Memento 模式C++模式
- 談 C++17 裡的 Command 模式C++模式
- 託管在GitHub上的流行/超讚視訊遊戲列表Github遊戲
- rxjs 裡 Skip 操作符的一個使用場景JS
- rxjs 裡 CombineLatest 操作符的一個使用場景JS
- 15款好用超讚的chrome外掛, 開發者們的必備~Chrome
- Python中的三個”黑魔法“與”騷操作“Python