Python初學者必學的20個重要技巧

2021-01-15 讀芯術

全文共5258字,預計學習時長14分鐘

圖源:unsplash

Python是世界上使用最廣泛的程式語言之一,原因有很多:易理解、用途非常廣泛、包含了大量的模塊和庫等等。其中,簡潔和較高的可讀性使Python在所有軟體中非常突出。

作為一名數據科學家,筆者每天都在使用Python,這是筆者工作的一個重要部分。在這個過程中,筆者學會了一些驚人的技巧。

1.交換價值

數字交換通常涉及存儲在臨時變量中的值。然而,我們可以通過使用Python技巧中的一行代碼,不需要使用瞬變變量就可以實現這一點。

"""valueswapping"""

a, b=5, 10

print(a, b)

a, b= b, a

print(a, b)

output

10, 5

2.列表中所有項的一個字符串

必須對一個字符串列表進行卷積時,可以通過for循環來更新每一項以此連續不斷地執行此操作。然而這樣做很麻煩,特別是在列表很長的情況下。在Python中,字符串是不可變的。因此,在每兩個拼接中,左字符串和右字符串都應該被複製成一個新的字符串。

如下所示,使用join()函數是一種更為簡潔的解決方法:

p = ["Python", "is", "a","popular", "language"]

print(" ".join(p))output

Python is a popular language

3. 列表中最常見的元素

確定列表中最經常出現的值。如果不同的項目以相同的方式出現,則列印其中的一個。創建列表集以刪除冗餘值。因此在集合中能找到每一項的最大事件數,然後再考慮最大的。

list1 = [0, 1, 2, 3, 3, 2, 3, 1, 4, 5, 4]

print(max(set(list1), key = list1.count))output

3

4.測試兩個字符串是否為相同字母異序詞

defanagram(string_1,string_2):

"""Test if the stringsare anagrams.

string_1: string

string_2: string

returns: boolean

"""

解決上述問題,從而弄清楚兩個字符串是否是相同字母異序詞。給定兩個字符串string_1 和string_2,測試這兩個字符串是否互為相同字母異序詞。

from collections importCounter

defanagram(string_1,string_2):

returnCounter(string_1) ==Counter(string_2)

anagram('pqrs','rqsp')

True

anagram('pqrs','rqqs')

False

圖源:unsplash

5.逆轉字符串

切片是Python中的一種方便技巧,它還可以用於逆轉字符串中項的順序。

# with slicing

str ="PQRST"

reverse_str = str[::-1]

print(reverse_str)

Output

TSRQP

6.反轉列表

使用這種方法創建列表的副本,而且列表沒有按順序排序。要創建一個副本,需要更多的空間來容納所有現有的元素。

# using slicing approach

defReverse(lst):

lst1 = lst[::-1]

return lst1

lst = [5, 6, 7, 8, 9, 10]

print(Reverse(lst))

output

[10, 9, 8, 7, 6, 5]

7. 轉置矩陣

轉置矩陣意味著將列變換為行,反之亦然。使用Python,可以通過以下代碼與zip函數結合,並使用*工具解壓縮矩陣的轉置列表。

mat=[(5,6,7),(8,9,10),(11,12,13),(14,15,16)]

for row in mat:

print(row)

print("\n")

t_mat=zip(*mat)

for row in t_mat:

print(row)

output

(5, 6, 7)

(8, 9, 10)

(11, 12, 13)

(14, 15, 16)

(5, 8, 11, 14)

(6, 9, 12, 15)

(7, 10, 13, 16)

8. 鏈式比較

在編程中,測試兩個以上的條件是很正常的。假設需要測試以下內容:

p < q< r

更聰明的做法確實是在Python中通過鏈式來編寫。任務鍊表示如下:

if p< q< r:

{.....}

返回布爾值來比較判斷正確與否。示例如下:

# chaining comparison

a =3

print(1< a<10)

print(5< a<15)

print(a <7< a*7<49)

print(8> a<=6)

print(3== a>2)

output

True

False

True

True

True

9. 『get』字典

下面是訪問Python字典中鍵值的傳統方法:

dict = {"P":1, "Q":2}

print(dict["P"])

print(dict["R"])

代碼的第三行會產生一個關鍵錯誤:

Traceback (most recent call last):

File ".\dict.py", line 3, in

print (dict["R"])

KeyError: 'R'

為了防止這種情況的出現,可以使用get()函數。當在字典中可用時,該技巧可以提供特定鍵的值。若不可用,則不會返回任何值(如果 get()只使用了一個參數)。

dict = {"P":1, "Q":2}

print(dict.get("P"))

print(dict.get("R"))

print(dict.get("R","Unavailable! "))

output

1

None

Unavailable!

10. 按值給字典排序

排序在日常編程中一直是很有用的。Python中的字典在許多應用程式中被廣泛使用,範圍從競爭領域到開發人員領域。構造一本字典,並按字母順序顯示所有鍵,按值列出按字母順序排序的鍵和值。

defdict():

keyval ={}

# Initializing the value

keyval[3] =48

keyval[2] =6

keyval[5] =10

keyval[1] =22

keyval[6] =15

keyval[4] =245

print ("Task3:-\nKeys and Values sorted",

"in alphabetical order by thevalue")

# Remember this would arrange inaphabetical sequence

# Convert it to float to mathematicalpurposes

print(sorted(keyval.elements(), key =

lambda k_val:(k_val[1], k_val[0])))

defmain():

dict()

if __name__=="__main__":

main()

output

[(2, 6), (5, 10), (6, 15), (1, 22), (3, 48), (4, 245)]

圖源:unsplash

11. 列表推導

要從不同的迭代中構造新的列表,需要使用列表推導。由於列表推導式產生列表,因此它們包含表達式的括號,該表達式將被執行到每個元素。推導列表更簡單,因為Python解釋器旨在檢測循環中的循環模式。

# Multiplying each item in the list with 3

list1 = [2,4,6,8]

list2 = [3*p for p in list1]

print(list2)

[6,12,18,24]

12. 執行部分計劃所花費的時間

這個重點展示了計算程序或程序的一部分執行所花費的時間。計算時間有助於優化Python腳本,使其執行得更好。

import time

initial_Time = time.time()

# Program to test follows

x, y=5,6

z = x+ y

# Program to test ending

ending_Time = time.time()

Time_lapsed_in_Micro_sec= (ending_Time- initial_Time)*(10**6)

print(" Timelapsed in micro_seconds: {0} ms").format(Time_lapsed_in_Micro_sec)

13. 合併字典

這是Python中的一個重要技巧:使用一個表達式來合併兩個字典並將結果存儲在第三個字典中。單個表達式是 **,這不會影響其他兩個字典。**表示參數是一個字典。使用**是一種快捷方式,這樣就可以通過使用字典直接向函數傳遞多個參數。

使用這個函數,首先將第一個字典的所有元素傳遞給第三個字典,然後將第二個字典傳遞給第三個字典。這將替換第一個字典的重複鍵

dic1 = {'men': 6, 'boy': 5}

dic2 = {'boy': 3, 'girl': 5}

merged_dic = {**dic1, **dic2}

print(merged_dic)

Output

{'men': 6, 'boy': 3, 'girl': 5}

14. 數位化

下面是使用了 map()函數、列表推導以及一種更簡單的數位化方法編寫的代碼:

number =2468

# with map

digit_list =list(map(int, str(number)))

print(digit_list)

[2, 4, 6, 8]

# with list comprehension

digit_list = [int(a) for a instr(number)]

print(digit_list)

[2, 4, 6, 8]

# Even simpler approach

digit_list =list(str(number))

print(digit_list)

[2, 4, 6, 8]

15. 測試獨特性

一些列表操作要求測試列表中的所有項是否完全不同。嘗試在列表中執行集合操作時,通常會發生這種情況,這個特殊的實用程序在這時必不可少。

defuniq(list):

iflen(list)==len(set(list)):

print("totalitems are unique")

else:

print("Listincludes duplicate item")

uniq([0,2,4,6])

total items are unique

uniq([1,3,3,5])

List includesduplicate item

16. 使用枚舉

在循環中使用枚舉數可以快速查找索引:

sample_list = [4, 5, 6]

for j, item inenumerate(sample_list):

print(j, ': ', item)

Output

0 : 4

1 : 5

2 : 6

17.在一行中計算任意數的階乘

此技巧可以幫助你在一行中找到一個給定數的階乘:

import functools

fact = (lambda i: functools.reduce(int.__mul__, range(1,i+1),1)(4)

print(fact)

Output

24

18. 返回幾個函數的元素

許多計算機語言都不提供這個功能。但是對於Python,函數會產生幾個元素。查看下面的實例,了解它是如何執行的:

# function returning several elements.

defa():

return5, 6, 7, 8

# Calling the abovefunction.

w, x, y, z=a()

print(w, x, y, z)

Output

5678

19. 加入一個真正的Python切換大小寫語句

下面是使用字典複製大小寫轉換結構的腳本:

defaswitch(a):

returnaswitch._system_dic.get(a, None)

aswitch._system_dic = {'mangoes': 4, 'apples': 6, 'oranges': 8}

print(aswitch('default'))

print(aswitch('oranges'))

Output

None

8

20.使用splat操作符解包函數參數

splat操作符提供了一種解包參數列表的有效方法:

deftest(a, b, c):

print(p, q, r)

test_Dic = {'a': 4, 'b': 5, 'c': 6}

test_List = [10, 11, 12]

test(*test_Dic)

test(**test_Dic)

test(*test_List)

#1-> p q r

#2-> 4 5 6

#3-> 10 11 12

圖源:unsplash

掌握這些小技巧,快速有效地完成Python任務。

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 4個Python初學者必學的Numpy小技巧
    圖源:UnsplashPython初學者除了要掌握基礎知識外,了解一些小技巧、小竅門也是學習路上必不可少的一種催化劑,能幫助你更好的學習。下面小芯就基於實踐整理出了Python初學者應該學習的4個numpy技巧,它們能夠幫助你編寫更簡潔易讀的代碼。在學習numpy技巧之前,請確保已熟悉以下文章中的一些Python內置功能。1. 掩碼數組——選擇數據集是不完善的,它們總是包含缺失或無效記錄的數組,而這些記錄是時常需要忽略的。例如,由於傳感器故障,氣象站的測量值可能包含缺失值。
  • 漫畫初學者必學!如何畫出不同形狀的鼻子?這個知識點非常有用啊
    漫畫初學者該如何入門?零基礎如何學漫畫?插畫初學者如何學好繪畫?學習繪畫難嗎?想必這些都是繪畫初學者們經常在想的問題吧,就是不知道如何才能學習好繪畫,然後繪畫出自己想要畫的東西 那麼今天靈貓課堂就在網絡上收集整理了一些關於如何繪畫鼻子的教程給大家,漫畫初學者必學!如何畫出不同形狀的鼻子?
  • Python初學者請注意!別這樣直接運行python命令
    這樣設計的好處是,初學者能夠非常方便地執行命令。但是對攻擊者來說,這等於是為惡意程序大開後門。尤其是一些初學者將網上的Python軟體包、代碼下載的到本地~/Downloads文件夾後,就直接在此路徑下運行python命令,這樣做會給電腦帶來極大的隱患。別再圖方便了為何這樣做會有危險?
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    想要入門Python 爬蟲首先需要解決四個問題:1.熟悉python編程2.了解HTML3.了解網絡爬蟲的基本原理4.學習使用python爬蟲庫1、熟悉python編程剛開始入門爬蟲,初學者無需學習python的類,多線程,模塊和其他稍微困難的內容。
  • 推薦| 關於Python的20個關鍵詞和45個最佳案例
    這份表單旨在讓人們生活更便捷,整理了最有用的20個關鍵話題,其中包括經驗豐富的程式設計師分享有關Python的課程。Python中的記憶:如何緩存函數結果 - Dan Bader14.Django完整的Django
  • Python最重要的5大功能,要是能早點了解就好了!
    但也正因其功能繁多,初學者一開始是很難掌握所有功能的。即使你是一名從其他語言(比如C語言或MATLAB語言)轉換過來的程式設計師,用更加抽象的Python編寫代碼對你來說也絕對是一次不同的體驗。但功能雖多,總有主次之分。為了方便大家早點了解Python的一些大功能,小芯特別整理出了其中5大最重要的功能。1.
  • 入門Python,這些JupyterNotebook技巧就是你必須學的
    此系列文章收錄在公眾號(建議按順序閱讀本系列文章) : 數據大宇宙 > Python > 工具轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)Python數據人你竟然不會用JupyterNotebook!
  • Python2 已終結,入手Python 3,你需要這30個技巧
    這篇教程有 30 個你會喜歡的方法。勤勞的程式設計師們,這裡有 30 條使用 Python 時實用的建議和小技巧。你可以把讀這篇文章當做工作間隙的小憩,而且我保證你學到的東西會跟工作時一樣多。1./python-data-classes/8.
  • python編程30個常用技巧
    打開APP python編程30個常用技巧 深度學習這件小事 發表於 2020-12-24 15:07:51 1、冒泡排序
  • Python 三十大實踐、建議和技巧
    新一年,我們先為大家準備 30 個非常優秀的 Python 實踐技巧。希望這些訣竅能在實際工作中幫助大家,並且學到一些有用的知識。1、使用 python 3由於官方從2020年1月1日起就停止了對python2.7的更新支持,因此本教程的大部分例子都只能在python 3環境下運行。如果你仍然在使用2.7版本,請先升級到python 3。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    教程大合集,包含python所有就業方向,每套課程均來自市面上主流培訓機構的原版教程,價值都在數百元以上 每套課程均包含:視頻課程+課件+原始碼 重要:建議根據自己工作方向和需求,重點選擇2到3套課程學精,吃透,然後在工作 重要:零基礎小白建議先選擇零基礎全能篇的一套課程學精,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐
  • 初學者怎樣才能學好水粉畫的三個實用技巧
    比如本文初學者怎樣才能學好水粉畫的三個實用技巧就可以幫助大家解答部分疑惑哦!  畫好水粉風景最重要的三點  1、感受  2、顏色  3、構圖  這三點算是最基本的吧(個人理解)  考前的培訓班練過很多水粉畫,我們畫室的老師從頭到尾都和我們強調感受
  • AE初學者如何套用AE模板的技巧
    Adobe After Effects CS 或者CC對於初學者來說要想能夠單獨不靠教程出作品非常難,,這裡其實我要告訴很多初學者,ae教程要看,但模板對於初學者來說是另外一個更快的掌握AE各種插件,工具,特效使用方法的一個門徑,不過很多初學者對套模板來說都覺得非常困難,看不太明白,因為AE套模板確實比會聲會影之類的軟體難多了
  • 入門攝影必學課 光圈是什麼?如何應用?
    入門攝影必學課 光圈是什麼?通過調節,我們就可以掌握這幾個方面與畫面虛化的關係,從而掌控畫面的整體感覺,拍攝出更多的大片。大光圈和小光圈有什麼應用和效果?    對於攝影初學者來說,太高深的拍攝操作在最開始實現一定會有很多問題,所以拍攝的題材應該從入門的操作開始。
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    數據科學愛好者 Parul Pandey 在近日發表了一篇博文,分享了在數據科學中非常實用的 10 個小技巧。雷鋒網 AI 科技評論將他的文章編譯整理如下。有時候,一點小小的黑客行為可以節省時間,挽救生命。一個小小的快捷方式或附加組件有時會被證明是天賜之物,並且可以真正提高生產力。所以,下面是我最喜歡的一些技巧,我以本文的形式一起使用和編譯它們。
  • 技巧| 嬌小女孩必學的八大穿搭技巧!
    原標題:技巧 | 嬌小女孩必學的八大穿搭技巧! 導語 男生會覺得長得嬌小的女生很可愛,但嬌小女生的煩惱,男生又豈會懂呢?穿出這種效果可能只是你還未掌握穿搭技巧而已 # Miroslava Duma #
  • Python 3.8.0來了!
    Python 3.8.0 重要新特性&優化 那麼,這次新發布的 Python 3.8.0 有哪些重要的改進呢?以下是是 Python 3.8 相比 3.7 的新增特性。
  • windows上python開發環境的搭建
    首先來下載python解釋器,在python官網下載即可,連結如下https://www.python.org/downloads/當前最新版本為v3.8.2有一點很特別,用縮進的方式來表示代碼塊,表示縮進的空白只可以是tab或者空格中的一種,如果混用,則無法正確識別,這一點在使用文本編輯器的時候尤其需要注意,為了保證只出現一種,需要設置文本編輯器,將tab設置成4個空格.。
  • python基礎教程之python是什麼?
    這是最近10年最常用的10種程式語言的變化圖:python是什麼--python的功能總的來說,這幾種程式語言各有千秋。龜叔給Python的定位是「優雅」、「明確」、「簡單」,所以Python程序看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程序。總的來說,Python的哲學就是簡單優雅,儘量寫容易看明白的代碼,儘量寫少的代碼。
  • 48個英語音標全套資料,20個元音和28個輔音,搭配144個單詞
    本文的音標卡片花了10個小時精心製作,對學習音標的網友「很有幫助」。英語音標是「必學知識」,學會了音標,就可以自學單詞了。英語單詞的發音,主要通過音標來標記和學習。而且英語發音是否準確,和音標的關係非常大。音標包括哪些內容呢?音標分為20個元音和28個輔音。