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

超實用的三十個 Python 案例

開發 后端
在本文中,我們將會介紹 30 個簡短的代碼片段,你可以在 30 秒或更短的時間里理解和學習這些代碼片段。

 

Python是目前最流行的語言之一,它在數據科學、機器學習、web開發、腳本編寫、自動化方面被許多人廣泛使用。它的簡單和易用性造就了它如此流行的原因。

在本文中,我們將會介紹 30 個簡短的代碼片段,你可以在 30 秒或更短的時間里理解和學習這些代碼片段。

1.檢查重復元素

下面的方法可以檢查給定列表中是否有重復的元素。它使用了 set() 屬性,該屬性將會從列表中刪除重復的元素。 

  1. def all_unique(lst):   
  2.     return len(lst) == len(set(lst))       
  3.  x = [1,1,2,2,3,2,3,4,5,6]    
  4.  y = [1,2,3,4,5]      
  5. all_unique(x) # False    
  6. all_unique(y) # True 

2.變位詞

檢測兩個字符串是否互為變位詞(即互相顛倒字符順序) 

  1. from collections import Counter      
  2. def anagram(first, second):      
  3.     return Counter(first) == Counter(second)    
  4.  anagram("abcd3", "3acdb") # True 

3.檢查內存使用情況

以下代碼段可用來檢查對象的內存使用情況。 

  1. import sys   
  2. variable = 30    
  3. print(sys.getsizeof(variable)) # 24 

4.字節大小計算

以下方法將以字節為單位返回字符串長度。

  1. def byte_size(string):        return(len(string.encode( utf-8 )))        byte_size( 😀 ) # 4    byte_size( Hello World ) # 11 

5.重復打印字符串 N 次

以下代碼不需要使用循環即可打印某個字符串 n 次 

  1. n = 2;   
  2. s ="Programming"; print(s * n);   
  3. # ProgrammingProgramming 

6.首字母大寫

以下代碼段使用 title() 方法將字符串內的每個詞進行首字母大寫。 

  1. s = "programming is awesome"      
  2. print(s.title()) # Programming Is Awesome 

7.分塊

以下方法使用 range() 將列表分塊為指定大小的較小列表。 

  1. from math import ceil    def chunk(lst, size):        return list(            map(lambda x: lst[x * size:x * size + size],                list(range(0, ceil(len(lst) / size)))))    chunk([1,2,3,4,5],2) # [[1,2],[3,4],5] 

8.壓縮

以下方法使用 fliter() 刪除列表中的錯誤值(如:False, None, 0 和“”) 

  1. def compact(lst):      
  2.     return list(filter(bool, lst))    
  3. compact([0, 1, False, 2,   , 3,  a ,  s , 34]) # [ 1, 2, 3,  a ,  s , 34 ] 

9.間隔數

以下代碼段可以用來轉換一個二維數組。 

  1. array = [[ a ,  b ], [ c ,  d ], [ e ,  f ]]      
  2. transposed = zip(*array)      
  3. print(transposed) # [( a ,  c ,  e ), ( b ,  d ,  f )] 

10.鏈式比較

以下代碼可以在一行中用各種操作符進行多次比較。 

  1. a = 3      
  2. print( 2 < a < 8) # True      
  3. print(1 == a < 2) # False 

11.逗號分隔

以下代碼段可將字符串列表轉換為單個字符串,列表中的每個元素用逗號分隔。 

  1. hobbies = ["basketball", "football", "swimming"]  
  2. print("My hobbies are: " + ", ".join(hobbies)) # My hobbies are: basketball, football, swimming 

12.計算元音字母數

以下方法可計算字符串中元音字母(‘a’, ‘e’, ‘i’, ‘o’, ‘u’)的數目。 

  1. import re      
  2. def count_vowels(str):      
  3.     return len(len(re.findall(r [aeiou] , str, re.IGNORECASE)))      
  4. count_vowels( foobar ) # 3      
  5. count_vowels( gym ) # 0 

13.首字母恢復小寫

以下方法可用于將給定字符串的第一個字母轉換為小寫。 

  1. def decapitalize(string):      
  2.     return str[:1].lower() + str[1:]   
  3. decapitalize( FooBar ) #  fooBar    
  4. decapitalize( FooBar ) #  fooBar 

14.平面化

以下方法使用遞歸來展開潛在的深度列表。 

  1. def spread(arg):    ret = []    for i in arg:        if isinstance(i, list):            ret.extend(i)        else:            ret.append(i)    return retdef deep_flatten(lst):    result = []    result.extend(        spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))    return resultdeep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5] 

15.差異

該方法只保留第一個迭代器中的值,從而發現兩個迭代器之間的差異。 

  1. def difference(a, b):  
  2.     setset_a = set(a) 
  3.     setset_b = set(b)  
  4.     comparison = set_a.difference(set_b)  
  5.     return list(comparison)  
  6. difference([1,2,3], [1,2,4]) # [3] 

16.尋找差異

下面的方法在將給定的函數應用于兩個列表的每個元素后,返回兩個列表之間的差值。 

  1. def difference_by(a, b, fn):  
  2.     b = set(map(fn, b))  
  3.     return [item for item in a if fn(item) not in b]  
  4. from math import floor  
  5. difference_by([2.1, 1.2], [2.3, 3.4],floor) # [1.2]  
  6. difference_by([{  x : 2 }, {  x : 1 }], [{  x : 1 }], lambda v : v[ x ]) # [ { x: 2 } ] 

17.鏈式函數調用

以下方法可在一行中調用多個函數。 

  1. def add(a, b):  
  2.     return a + b  
  3. def subtract(a, b):  
  4.     return a - b  
  5. a, b = 4, 5  
  6. print((subtract if a > b else add)(a, b)) # 9 

18.檢查重復值

以下方法使用 set() 方法僅包含唯一元素的事實來檢查列表是否具有重復值。 

  1. def has_duplicates(lst):  
  2.     return len(lst) != len(set(lst))    
  3. x = [1,2,3,4,5,5]  
  4. y = [1,2,3,4,5]  
  5. has_duplicates(x) # True  
  6. has_duplicates(y) # False 

19.合并兩個詞典

以下方法可用于合并兩個詞典。 

  1. def merge_two_dicts(a, b):  
  2.     c = a.copy()   # make a copy of a  
  3.     c.update(b)    # modify keys and values of a with the ones from b  
  4.     return c  
  5. a = {  x : 1,  y : 2}  
  6. b = {  y : 3,  z : 4}  
  7. print(merge_two_dicts(a, b)) # { y : 3,  x : 1,  z : 4} 

在Python 3.5及更高版本中,你還可以執行以下操作: 

  1. def merge_dictionaries(a, b)   return {**a, **b}a = {  x : 1,  y : 2}b = {  y : 3,  z : 4}print(merge_dictionaries(a, b)) # { y : 3,  x : 1,  z : 4} 

20.將兩個列表轉換成一個詞典

以下方法可將兩個列表轉換成一個詞典。 

  1. def to_dictionary(keys, values):  
  2.     return dict(zip(keys, values))     
  3. keys = ["a", "b", "c"]      
  4. values = [2, 3, 4]  
  5. print(to_dictionary(keys, values)) # { a : 2,  c : 4,  b : 3} 

21.使用枚舉

以下方法將字典作為輸入,然后僅返回該字典中的鍵。 

  1. list = ["a", "b", "c", "d"]  
  2. for index, element in enumerate(list):   
  3.     print("Value", element, "Index ", index, )  
  4. # ( Value ,  a ,  Index  , 0)  
  5. # ( Value ,  b ,  Index  , 1)  
  6. #( Value ,  c ,  Index  , 2)  
  7. # ( Value ,  d ,  Index  , 3) 

22.計算所需時間

以下代碼段可用于計算執行特定代碼所需的時間。 

  1. import time  
  2. start_time = time.time()  
  3. a = 1  
  4. b = 2  
  5. c = a + b  
  6. print(c) #3  
  7. end_time = time.time()  
  8. total_time = end_time - start_time  
  9. print("Time: ", total_time)  
  10. # ( Time:  , 1.1205673217773438e-05) 

23.Try else 指令

你可以將 else 子句作為 try/except 塊的一部分,如果沒有拋出異常,則執行該子句。 

  1. try:  
  2.     2*3  
  3. except TypeError:  
  4.     print("An exception was raised") 
  5. else: 
  6.     print("Thank God, no exceptions were raised.") 
  7. #Thank God, no exceptions were raised. 

24.查找最常見元素

以下方法返回列表中出現的最常見元素。 

  1. def most_frequent(list):  
  2.     return max(set(list), key = list.count)    
  3. list = [1,2,1,2,3,2,1,4,2]  
  4. most_frequent(list) 

25.回文

以下方法可檢查給定的字符串是否為回文結構。該方法首先將字符串轉換為小寫,然后從中刪除非字母數字字符。最后,它會將新的字符串與反轉版本進行比較。 

  1. def palindrome(string):  
  2.     from re import sub  
  3.     s = sub( [W_] ,   , string.lower())  
  4.     return s == s[::-1]  
  5. palindrome( taco cat ) # True 

26.沒有 if-else 語句的簡單計算器

以下代碼段將展示如何編寫一個不使用 if-else 條件的簡單計算器。 

  1. import operator  
  2. action = {  
  3.     "+": operator.add,  
  4.     "-": operator.sub,  
  5.     "/": operator.truediv,  
  6.     "*": operator.mul,  
  7.     "**": pow 
  8.  
  9. print(action[ - ](50, 25)) # 25 

27.元素順序打亂

以下算法通過實現 Fisher-Yates算法 在新列表中進行排序來將列表中的元素順序隨機打亂。 

  1. from copy import deepcopy  
  2. from random import randint  
  3. def shuffle(lst):  
  4.     temp_lst = deepcopy(lst)  
  5.     m = len(temp_lst)  
  6.     while (m):  
  7.         m -1  
  8.         i = randint(0, m)  
  9.         temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]  
  10.     return temp_lst    
  11. foo = [1,2,3]  
  12. shuffle(foo) # [2,3,1] , foo = [1,2,3] 

28.列表扁平化

以下方法可使列表扁平化,類似于JavaScript中的[].concat(…arr)。 

  1. def spread(arg):  
  2.     ret = []  
  3.     for i in arg:  
  4.         if isinstance(i, list):  
  5.             ret.extend(i)  
  6.         else:  
  7.             ret.append(i)  
  8.     return ret  
  9. spread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9] 

29.變量交換

以下是交換兩個變量的快速方法,而且無需使用額外的變量。 

  1. def swap(a, b): 
  2.   return b, a  
  3. a, b = -1, 14 
  4. swap(a, b) # (14, -1) 

30.獲取缺失鍵的默認值

以下代碼段顯示了如何在字典中沒有包含要查找的鍵的情況下獲得默認值。 

  1. d = { a : 1,  b : 2}  
  2. print(d.get( c , 3)) # 3 

以上是你在日常工作中可能會發現的有用方法的簡短列表。它主要基于這個GitHub項目(https://github.com/30-seconds/30_seconds_of_knowledge),你可以在其中找到許多其他有用的代碼片段,包括Python及其他編程語言和技術。 

 

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2024-02-01 12:53:00

PandasPython數據

2024-05-23 11:53:24

Python代碼異常處理

2022-03-02 11:45:16

Python函數數據分析

2009-07-09 15:20:34

Java基礎知識

2024-11-26 14:18:44

Python代碼技巧

2024-10-15 10:40:09

2019-09-26 14:20:27

JavaScript代碼編程語言

2017-12-12 14:50:33

數據庫MySQL命令

2024-05-15 08:59:52

Python編程

2022-04-24 10:12:25

Python軟件包代碼

2025-06-11 08:25:00

Python編程開發

2024-04-09 00:00:00

Java代碼片段

2009-06-16 11:11:00

基本規則Java程序

2024-09-14 09:26:17

Python網絡編程

2023-06-14 15:51:48

JavaScript

2023-10-23 14:14:10

SQL數據庫

2020-07-07 08:01:37

nc命令Linux網絡命令行工具

2023-07-24 07:11:43

2011-06-01 09:59:52

2020-10-13 09:38:39

Python迭代開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久一二区| 国产精品免费一区二区 | 久久久久黄色 | 日韩欧美精品在线 | 国产精品日日摸夜夜添夜夜av | 一区二区在线不卡 | 国产精品18hdxxxⅹ在线 | 国产乱码精品一区二区三区忘忧草 | 伊人免费视频二 | 国产在线网址 | 91精品国产91久久综合桃花 | 久久网亚洲 | 91精品国产一区二区三区 | 国产在线一区二区三区 | 亚洲一区中文字幕在线观看 | 久久久久久综合 | 日韩免费1区二区电影 | 欧美一二三区 | 福利视频一区二区三区 | 国产一区二区久久 | 精品1区2区 | 国产精品久久av | 一区二区三区四区电影视频在线观看 | 国产精品久久九九 | 免费99精品国产自在在线 | 国产免费一区二区 | 999www视频免费观看 | 9999精品视频 | 91网视频 | 女女百合av大片一区二区三区九县 | 91精品91久久久 | 午夜视频一区二区 | 精品美女视频在免费观看 | 欧美日本亚洲 | 久久久久无码国产精品一区 | 久久国产精品一区二区三区 | 午夜av电影院 | 久久精品日产第一区二区三区 | 精品国产一区二区三区久久久久久 | 久久久精品一区二区 | 欧洲尺码日本国产精品 |