成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

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

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

[[340836]]

1. 交換價值

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

  1. """valueswapping""" 
  2.            a, b=5, 10 
  3.            print(a, b)           a, bb= b, a           print(a, b)           output           10, 5 

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

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

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

  1. p = ["Python", "is", "a","popular", "language"] 
  2. print(" ".join(p))output 
  3. Python is a popular language 

3. 列表中最常見的元素

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

  1. list1 = [0, 1, 2, 3, 3, 2, 3, 1, 4, 5, 4] 
  2. print(max(set(list1), key = list1.count))output 

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

  1. defanagram(string_1,string_2):     
  2.                       """Test if the stringsare anagrams.     
  3.                       string_1: string     
  4.                       string_2: string     
  5.                       returns: boolean     
  6.                       """ 

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

  1. from collections importCounter 
  2.            defanagram(string_1,string_2):                    returnCounter(string_1) ==Counter(string_2)           anagram('pqrs','rqsp') 
  3.            True 
  4.            anagram('pqrs','rqqs') 
  5.            False 

[[340837]]

圖源:unsplash

5. 逆轉字符串

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

  1. # with slicing 
  2.        str ="PQRST" 
  3.        reverse_str = str[::-1] 
  4.        print(reverse_str)       Output       TSRQP 

6. 反轉列表

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

  1. # using slicing approach 
  2.         defReverse(lst):         lstlst1 = lst[::-1] 
  3.          return lst1 
  4.                  lst = [5, 6, 7, 8, 9, 10] 
  5.         print(Reverse(lst)) 
  6.         output 
  7.         [10, 9, 8, 7, 6, 5] 

7. 轉置矩陣

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

  1. mat=[(5,6,7),(8,9,10),(11,12,13),(14,15,16)] 
  2.                                              for row in mat: 
  3.                                               print(row) 
  4.                                              print("\n") 
  5.                                              t_mat=zip(*mat) 
  6.                                              for row in t_mat: 
  7.                                               print(row) 
  8.                                              output 
  9.                                              (5, 6, 7) 
  10.                                              (8, 9, 10) 
  11.                                              (11, 12, 13) 
  12.                                              (14, 15, 16) 
  13.                                              (5, 8, 11, 14) 
  14.                                              (6, 9, 12, 15) 
  15.                                              (7, 10, 13, 16) 

8. 鏈式比較

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

  1. < q< r 

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

  1. if p< q< r: 
  2.     {.....} 

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

  1. # chaining comparison 
  2.           a =3 
  3.           print(1< a<10
  4.           print(5< a<15
  5.           print(a <7< a*7<49
  6.           print(8> a<=6) 
  7.           print(3== a>2) 
  8.           output 
  9.           True 
  10.           False 
  11.           True 
  12.           True 
  13.           True 

9. ‘get’字典

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

  1. dict = {"P":1, "Q":2} 
  2. print(dict["P"]) 
  3. print(dict["R"]) 

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

  1. Traceback (most recent call last): 
  2.   File ".\dict.py", line 3, in 
  3.     print (dict["R"]) 
  4. KeyError: 'R' 

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

  1. dict = {"P":1, "Q":2} 
  2.        print(dict.get("P")) 
  3.        print(dict.get("R")) 
  4.        print(dict.get("R","Unavailable! ")) 
  5.        output       1 
  6.        None 
  7.        Unavailable! 

10. 按值給字典排序

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

  1. defdict():  
  2.        keyval ={}       # Initializing the value       keyval[3] =48 
  3.        keyval[2] =6 
  4.        keyval[5] =10 
  5.        keyval[1] =22 
  6.        keyval[6] =15 
  7.        keyval[4] =245 
  8.        print ("Task3:-\nKeys and Values sorted", 
  9.        "in alphabetical order by thevalue") 
  10.        # Remember this would arrange inaphabetical sequence       # Convert it to float to mathematicalpurposes       print(sorted(keyval.elements(), key = 
  11.           lambda k_val:(k_val[1], k_val[0]))) 
  12.        defmain():        dict()                  if __name__=="__main__":  
  13.         main()       output 
  14.        [(2, 6), (5, 10), (6, 15), (1, 22), (3, 48), (4, 245)] 

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

圖源:unsplash

11. 列表推導

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

  1. # Multiplying each item in the list with 3 
  2.            list1 = [2,4,6,8] 
  3.            list2 = [3*p for p in list1] 
  4.            print(list2) 
  5.            [6,12,18,24] 

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

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

  1. import time 
  2.       initial_Time = time.time() 
  3.       # Program to test follows      x, y=5,6 
  4.       z = x+ y      # Program to test ending      ending_Time = time.time() 
  5.       Time_lapsed_in_Micro_sec= (ending_Time- initial_Time)*(10**6) 
  6.       print(" Timelapsed in micro_seconds: {0} ms").format(Time_lapsed_in_Micro_sec) 

13. 合并字典

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

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

  1. dic1 = {'men': 6, 'boy': 5} 
  2.        dic2 = {'boy': 3, 'girl': 5} 
  3.        merged_dic = {**dic1, **dic2} 
  4.        print(merged_dic) 
  5.        Output 
  6.        {'men': 6, 'boy': 3, 'girl': 5} 

14. 數字化

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

  1. number =2468 
  2.       # with map 
  3.       digit_list =list(map(int, str(number))) 
  4.       print(digit_list)      [2, 4, 6, 8] 
  5.       # with list comprehension 
  6.       digit_list = [int(a) for a instr(number)] 
  7.       print(digit_list)      [2, 4, 6, 8] 
  8.       # Even simpler approach      digit_list =list(str(number)) 
  9.       print(digit_list)      [2, 4, 6, 8] 

15. 測試獨特性

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

  1. defuniq(list): 
  2.               iflen(list)==len(set(list)):                   print("totalitems are unique") 
  3.               else: 
  4.                    print("Listincludes duplicate item") 
  5.            uniq([0,2,4,6]) 
  6.            total items are unique           uniq([1,3,3,5]) 
  7.            List includesduplicate item 

16. 使用枚舉

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

  1. sample_list = [4, 5, 6] 
  2.            for j, item inenumerate(sample_list): 
  3.              print(j, ': ', item) 
  4.            Output 
  5.            0 : 4 
  6.            1 : 5 
  7.            2 : 6 

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

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

  1. import functools 
  2.          fact = (lambda i: functools.reduce(int.__mul__, range(1,i+1),1)(4) 
  3.          print(fact) 
  4.          Output         24 

18. 返回幾個函數的元素

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

  1. # function returning several elements. 
  2.          defa(): 
  3.              return5, 6, 7, 8 
  4.          # Calling the abovefunction. 
  5.          w, x, y, z=a() 
  6.          print(w, x, y, z) 
  7.          Output 
  8.          5678 

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

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

  1. defaswitch(a): 
  2.              returnaswitch._system_dic.get(a, None) 
  3.            aswitch._system_dic = {'mangoes': 4, 'apples': 6, 'oranges': 8} 
  4.            print(aswitch('default')) 
  5.            print(aswitch('oranges')) 
  6.            Output           None 
  7.            8 

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

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

  1. deftest(a, b, c): 
  2.          print(p, q, r) 
  3.        test_Dic = {'a': 4, 'b': 5, 'c': 6} 
  4.        test_List = [10, 11, 12]       test(*test_Dic) 
  5.        test(**test_Dic) 
  6.        test(*test_List) 
  7.        #1-> p q r 
  8.        #2-> 4 5 6 
  9.        #3-> 10 11 12 

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

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2011-07-26 16:08:40

iPhone 應用程序

2024-08-17 12:14:06

2011-08-10 19:16:50

Objective-C變量

2020-12-07 10:55:16

編程學習技術

2024-03-11 18:17:18

Python字符串分隔符

2022-07-22 15:55:32

Python代碼語言

2010-09-01 09:23:53

DIV CSS

2017-10-30 10:12:27

安卓開發初學者技巧

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2010-03-10 17:09:26

Python語言

2011-04-12 10:13:24

2024-05-08 12:41:29

Python編程語言

2014-01-03 14:09:57

Git學習

2020-03-02 14:20:46

PythonGitHub編程語言

2010-08-24 08:28:19

JavaScript

2011-07-04 14:14:54

java

2009-09-28 09:45:00

CCNA學習經驗CCNA

2020-09-06 22:04:48

Python運算符開發

2022-10-10 15:28:45

負載均衡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天综合天天 | 99久久久99久久国产片鸭王 | yiren22综合网成人 | 国产精品久久久久久久久久免费 | 天堂色网 | 亚洲一区二区三区欧美 | 成人国产精品久久久 | 精品一区二区久久久久久久网站 | 色视频成人在线观看免 | 日韩在线不卡 | 久久一区二区视频 | 精品国产乱码久久久久久图片 | www.久草.com| 99热这里| 免费a网| 99热这里 | 国产1区2区3区 | 国产高清视频一区二区 | 国产在线播放av | 国产一级免费视频 | 华人黄网站大全 | 婷婷丁香在线视频 | 精品一区二区三区在线观看国产 | 在线观看中文字幕 | 精品国产乱码久久久久久丨区2区 | 在线成人精品视频 | 日本天天操 | 欧美日韩综合视频 | 一区二区三区av | 99在线精品视频 | 99re视频在线| 国精品一区 | 亚洲性综合网 | 国产精品激情 | 国产美女精品视频 | 99久久99久久精品国产片果冰 | 成年人黄色一级片 | 日本网站免费观看 | 久久久久国产 | 中文字幕免费在线 | 粉嫩av久久一区二区三区 |