這篇文章主要講解了“重要的Python技能有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“重要的Python技能有哪些”吧!
1、拉姆達函數(Lambda Functions)
拉姆達函數非常強大。當然,當必須以相同的方式清理多個列時,我們不會使用它,但這并不是經常遇到的情況。通常情況下,每個屬性在清理后都需要自己的邏輯。
Lambda函數允許創建“匿名”函數。這基本上意味著可以快速生成特定函數,而無需使用pythonsdef來正確定義函數。
盡管如此,請記住Lambda函數主要被設計成one-liners,因此它應該用于簡單的東西。對于更復雜的邏輯,則需要使用常規函數。
里將展示兩個具體示例,通過這些示例,我們無需為所有項目定義函數,從而可以節省許少時間。雖然第一個示例可能不會在現實中常用,但值得一提。這就是對數字求平方。
#regular function def square_number(x): res = x ** 2 return res# lambda function square = lambda x: x ** 2# results print('square_number(4): {}'.format(square_number(4))) print('square lambda: {}'.format(square(4)))>>> square_number(4):16 >>> square lambda: 16
上面的代碼片段以常規方式和lambda函數的方式完成了相同邏輯的實現。雖然結果是一樣的,但是lambda的單行看起來舒服多了!
第二個例子是關于檢查數字是偶數或非偶數:
#regular function def is_even(x): if x % 2 == 0: return True else: return False # lambda function even = lambda x: x % 2 == 0# results print('is_even(4): {}'.format(is_even(4))) print('is_even(3): {}'.format(is_even(3))) print('even(4): {}'.format(even(4))) print('even(3): {}'.format(even(3)))>>> is_even(4): True >>> is_even(3): False >>> even(4): True >>> even(3): False
再一次,同樣的邏輯以兩種方式實現。你來決定你喜歡哪一個吧。
2、列表解析(List Comprehensions)
簡單來說,列表解析使我們可以使用其他符號創建列表??梢詫⑵湟暈槔ㄌ杻鹊膯涡醒h。
在做特征工程時,使用列表解析很方便。例如,假設我們在通過分析電子郵件標題來進行垃圾郵件檢測,那么我們會想弄明白是否問號會在垃圾郵件中經常出現。如果用列表解析來實現的話,這將是一項非常簡單的任務。
就不再進行更多的理論解釋了。例子才是最重要的。
這里的例子選擇聲明一個常規函數,該函數將檢查列表中以某個字符(在這種情況下為“ a”)開頭的項目。實施后,再用列表解析執行相同的操作。猜猜哪個會寫起來更快呢?
lst =['Acer', 'Asus', 'Lenovo', 'HP']# regular function def starts_with_a(lst): valids = [] for word in lst: if word[0].lower() == 'a': valids.append(word) return valids # list comprehension lst_comp = [word for word in lst if word[0].lower() == 'a']# results print('starts_with_a: {}'.format(starts_with_a(lst))) print('list_comprehension: {}'.format(lst_comp))>>> starts_with_a:['Acer', 'Asus'] >>> list_comprehension: ['Acer', 'Asus']
如果是第一次看到這樣的方式,語法可能會有點混亂。但是當你每天都在寫這樣的函數時,它們會越來越吸引你,看你能把多少復雜的東西應用進去。
3、Zip函數
這是在實踐中很少看到的內置python方法之一。從數據科學家的角度來看,它使我們能夠同時迭代兩個或多個列表。在處理日期和時間時,這可以派上用場。
例如,有一個屬性表示某個事件的開始時間,而第二個屬性表示該事件的結束時間時,為了進一步分析,幾乎總是需要計算它們之間的時間差。而到目前為止,zip函數是最簡單的方法。
例如,來比較一些虛構公司和虛構地區的一周銷售日期:
sales_north= [350, 287, 550, 891, 241, 653, 882] sales_south = [551, 254, 901, 776, 105, 502, 976]for s1, s2 in zip(sales_north,sales_south): print(s1 — s2)>>> -201 33 -351 115 136 151 -94
看看這有多么簡單吧??梢詰孟嗤倪壿嬐瑫r迭代3個數組,只需要在括號中添加“ s3”和其他一些列表名稱即可。
感謝各位的閱讀,以上就是“重要的Python技能有哪些”的內容了,經過本文的學習后,相信大家對重要的Python技能有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。