偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Python初學(xué)者必學(xué)的20個重要技巧

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

本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。

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

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

[[340836]]

1. 交換價值

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

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

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

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

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

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

3. 列表中最常見的元素

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

  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. 逆轉(zhuǎn)字符串

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

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

6. 反轉(zhuǎn)列表

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

  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. 轉(zhuǎn)置矩陣

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

  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. 鏈?zhǔn)奖容^

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

  1. < q< r 

更聰明的做法確實是在Python中通過鏈?zhǔn)絹砭帉憽H蝿?wù)鏈表示如下:

  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字典中鍵值的傳統(tǒng)方法:

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

代碼的第三行會產(chǎn)生一個關(guān)鍵錯誤:

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

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

  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中的字典在許多應(yīng)用程序中被廣泛使用,范圍從競爭領(lǐng)域到開發(fā)人員領(lǐng)域。構(gòu)造一本字典,并按字母順序顯示所有鍵,按值列出按字母順序排序的鍵和值。

  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初學(xué)者必學(xué)的20個重要技巧

圖源:unsplash

11. 列表推導(dǎo)

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

  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. 執(zhí)行部分計劃所花費的時間

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

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

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

  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. 數(shù)字化

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

  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. 測試獨特性

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

  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. 使用枚舉

在循環(huán)中使用枚舉數(shù)可以快速查找索引:

  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. 在一行中計算任意數(shù)的階乘

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

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

18. 返回幾個函數(shù)的元素

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

  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切換大小寫語句

下面是使用字典復(fù)制大小寫轉(zhuǎn)換結(jié)構(gòu)的腳本:

  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操作符解包函數(shù)參數(shù)

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

  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任務(wù)。

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2011-07-26 16:08:40

iPhone 應(yīng)用程序

2024-08-17 12:14:06

2020-12-07 10:55:16

編程學(xué)習(xí)技術(shù)

2011-08-10 19:16:50

Objective-C變量

2024-03-11 18:17:18

Python字符串分隔符

2022-07-22 15:55:32

Python代碼語言

2017-10-30 10:12:27

安卓開發(fā)初學(xué)者技巧

2010-09-01 09:23:53

DIV CSS

2011-04-12 10:13:24

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2014-01-03 14:09:57

Git學(xué)習(xí)

2010-03-10 17:09:26

Python語言

2024-05-08 12:41:29

Python編程語言

2020-03-02 14:20:46

PythonGitHub編程語言

2010-08-24 08:28:19

JavaScript

2022-10-10 15:28:45

負載均衡

2015-07-20 13:56:59

SDN

2011-07-04 14:14:54

java

2009-09-28 09:45:00

CCNA學(xué)習(xí)經(jīng)驗CCNA
點贊
收藏

51CTO技術(shù)棧公眾號