20 條非常實用的 Python 代碼,建議收藏!

2022-01-10 Python開發者

Python一直以來被詬病速度慢,影響開發效率,希望這次Guido老爺子能幫python打一場漂亮的翻身仗。

這篇文章不準備介紹Python速度如何,而是給大家帶來一些常用且實用的Python代碼實例,幾乎是開發者必備的知識點。

1、合併兩個字典

Python3.5之後,合併字典變得容易起來。我們可以通過**符號解壓字典,並將多個字典傳入{}中,實現合併。

def Merge(dict1, dict2): 
    res = {**dict1, **dict2} 
    return res 
      
# 兩個字典
dict1 = {"name": "Joy", "age": 25}
dict2 = {"name": "Joy", "city": "New York"}
dict3 = Merge(dict1, dict2) 
print(dict3)

輸出:

{'name': 'Joy', 'age': 25, 'city': 'New York'}

2、鏈式比較

python有鏈式比較的機制,在一行裡支持多種運算符比較。相當於拆分多個邏輯表達式,再進行邏輯與操作。

a = 5

print(2 < a < 8)
print(1 == a < 3)

輸出:

True
False

3、重複列印字符串

將一個字符串重複列印多次,一般使用循環實現,但有更簡易的方式可以實現。

n = 5
string = "Hello!"

print(string * n)

輸出:

Hello!Hello!Hello!Hello!Hello!

4、檢查文件是否存在

我們知道Python有專門處理系統交互的模塊-os,它可以處理文件的各種增刪改查操作。

那如何檢查一個文件是否存在呢?os模塊可以輕鬆實現。

from os import path

def check_for_file():
    print("Does file exist:", path.exists("data.csv"))

if __name__=="__main__":
    check_for_file()

輸出:

Does file exist: False

5、檢索列表最後一個元素

在使用列表的時候,有時會需要取最後一個元素,有下面幾種方式可以實現。

my_list = ['banana', 'apple', 'orange', 'pineapple']

#索引方法
last_element = my_list[-1]

#pop方法
last_element = my_list.pop()

輸出:

'pineapple'

6、列表推導式

列表推導式是for循環的簡易形式,可以在一行代碼裡創建一個新列表,同時能通過if語句進行判斷篩選

def get_vowels(string):
    return [vowel for vowel in string if vowel in 'aeiou'] 

print("Vowels are:", get_vowels('This is some random string'))

輸出:

Vowels are:  ['i', 'i', 'o', 'e', 'a', 'o', 'i']

7、計算代碼執行時間

python中time模塊提供了時間處理相關的各種函數方法,我們可以使用它來計算代碼執行的時間。

import time

start_time = time.time()

total = 0
for i in range(10):
  total += i
print("Sum:", total)

end_time = time.time()
time_taken = end_time - start_time
print("Time: ", time_taken)

輸出:

Sum: 45
Time:  0.0009975433349609375

8、查找出現次數最多的元素

使用max方法找出列表中出現次數最多的元素。

def most_frequent(list):
  return max(set(list), key=list.count)

mylist = [1,1,2,3,4,5,6,6,2,2]
print("出現次數最多的元素是:", most_frequent(mylist))

輸出:

出現次數最多的元素是: 2

9、將兩個列錶轉換為字典

有兩個列表,將列表A裡的元素作為鍵,將列表B裡的對應元素作為值,組成一個字典。

def list_to_dictionary(keys, values):
  return dict(zip(keys, values))

list1 = [1, 2, 3]
list2 = ['one', 'two', 'three']

print(list_to_dictionary(list1, list2))

輸出:

{1: 'one', 2: 'two', 3: 'three'}

10、異常處理

Python提供了try...except...finally的方式來處理代碼異常,當然還有其他組合的方式。

a, b = 1,0

try:
    print(a/b)
except ZeroDivisionError:
    print("Can not divide by zero")
finally:
    print("Executing finally block")

輸出:

Can not divide by zero
Executing finally block

11、反轉字符串

使用切片操作對字符串進行反轉,這是比較直接有效的方式。這也可以用來檢測迴文數。

str = "Hello World"

print("反轉後字符串是:", str[::-1])

輸出:

反轉後字符串是: dlroW olleH

12、字符串列表組成單個字符串

使用join方法將字符串列表組成單個字符串。

list = ["Hello", "world", "Ok", "Bye!"]
combined_string = " ".join(list)

print(combined_string)

輸出:

Hello world Ok Bye!

13、返回字典缺失鍵的默認值

字典中的get方法用於返回指定鍵的值,如果鍵不在字典中返回默認值 None 或者設置的默認值。

dict = {1:'one', 2:'two', 4:'four'}

#returning three as default value
print(dict.get(3, 'three'))

print("原始字典:", dict) 

輸出:

three
原始字典: {1: 'one', 2: 'two', 4: 'four'}

14、交換兩個變量的值

在不使用臨時變量的前提下,交換兩個變量的值。

a, b = 5, 10

# 方法1
a, b = b, a

# 方法2
def swap(a,b):
  return b,a
swap(a,b)

15、正則表達式

正則表達式用來匹配處理字符串,python中的re模塊提供了全部的正則功能。

import re

text = "The rain in spain"
result = re.search("rain", text)

print(True if result else False)

輸出:

True

16、篩選值

python中的filter方法可以用來進行值的篩選。

my_list = [0,1,2,3,6,7,9,11]

result = filter(lambda x: x % 2!=0, my_list)

print(list(result))

輸出:

[1, 3, 7, 9, 11]

17、統計字頻

判斷字符串每個元素出現的次數,可以用collections模塊中的Counter方法來實現,非常簡潔。

from collections import Counter
result = Counter('banana')
print(result)

輸出:

Counter({'a': 3, 'n': 2, 'b': 1})

18、變量的內存佔用

如何輸出python中變量的內存佔用大小,可以通過sys模塊來實現。

import sys

var1 = 15
list1 = [1,2,3,4,5]

print(sys.getsizeof(var1))
print(sys.getsizeof(list1))

輸出:

28
104

19、鏈式函數調用

在一行代碼中調用多個函數。

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

a, b = 5, 10

print((add if b > a else subtract)(a,b))

輸出:

15

20、從列表中刪除重複項

刪除列表中重複項一般可以通過遍歷來篩選去重,或者直接使用集合方法。

list1 = [1,2,3,3,4,'John', 'Ana', 'Mark', 'John']

# 方法1
def remove_duplicate(list_value):
    return list(set(list_value))
print(remove_duplicate(list1))

# 方法2
result = []
[result.append(x) for x in list1 if x not in result]
print(result)

輸出:

[1, 2, 3, 4, 'Ana', 'John', 'Mark']
[1, 2, 3, 4, 'John', 'Ana', 'Mark']

相關焦點

  • 20條非常實用的Python代碼,建議收藏!
    Python一直以來被詬病速度慢,影響開發效率,希望這次Guido老爺子能幫python打一場漂亮的翻身仗。這篇文章不準備介紹Python速度如何,而是給大家帶來一些常用且實用的Python代碼實例,幾乎是開發者必備的知識點。1、合併兩個字典Python3.5之後,合併字典變得容易起來。我們可以通過**符號解壓字典,並將多個字典傳入{}中,實現合併。
  • 寫出漂亮 Python 代碼的 20條準則
    此外,代碼的布局和組成非常重要,有大量資源涉及這個主題。下面是最受歡迎也是我最喜歡的一個:PEP 8——Python 代碼風格指南。https://www.python.org/dev/peps/pep-0008/瀏覽完 PEP8 後,看看下面這些文章,其中展示了一些亮點和應用:如何參照 PEP 8 編寫漂亮的 Python 代碼https://realpython.com/python-pep8/優雅的 Python 與 PEP8https:/
  • 50 條有趣的Python一行代碼,建議收藏!
    一些複雜的任務,甚至可以使用一行Python代碼就能搞定。下面,小F給大家介紹50個有趣的Python一行代碼,都很實用。兩個單詞如果包含相同的字母,次序不同,則稱為字母易位詞(anagram)。例如,「silent」和「listen」是字母易位詞,而「apple」和「aplee」不是易位詞。
  • 50條有趣的Python一行代碼,建議收藏!
    一些複雜的任務,甚至可以使用一行Python代碼就能搞定。下面,小F給大家介紹50個有趣的Python一行代碼,都很實用。希望大家能從中找到對自己有幫助的技巧。▍1、字母異位詞兩個單詞如果包含相同的字母,次序不同,則稱為字母易位詞(anagram)。
  • 50 條有趣的 Python 一行代碼,建議收藏!
    一些複雜的任務,甚至可以使用一行Python代碼就能搞定。下面給大家介紹50個有趣的Python一行代碼,都很實用。希望大家能從中找到對自己有幫助的技巧。▍1、字母異位詞兩個單詞如果包含相同的字母,次序不同,則稱為字母易位詞(anagram)。
  • 你必須掌握的20個python代碼,短小精悍,用處無窮
    當今python程式語言的潮流已經成為不可阻擋的趨勢,python以其較高的可讀性和簡潔性備受程式設計師的喜愛
  • Python代碼加速的10個最佳實用技巧
    如果有人問你 ——「現在世界上增長最快的程式語言是什麼?」
  • 運行你的第一句 Python 代碼
    ,你是否也想寫下並運行你的第一句代碼?要想運行你的代碼,必須有代碼解釋器,將代碼轉換為機器可懂的語言,否則,代碼寫的再好,也只是對牛彈琴。 那麼,對新手來說,最友好的python解釋器和編程環境是什麼呢? 當然是Anaconda !
  • 20條書寫 CSS 代碼的建議
    作者:Danny Markov 原文:20 Tips For Writing Modern CSS譯者:高華鋒譯文:www.jianshu.com/p/7a4947e12b85(點擊文末閱讀原文即可前往) 在這篇文章中,我想跟你分享 20 條由 CSS 社區推薦的約定和最佳實踐。
  • 100個相見恨晚的Python庫(建議收藏)
    只能說知道的人太少了它總結了Web 框架、網絡爬蟲、網絡內容提取、模板引擎、資料庫、數據可視化、圖片處理、文本處理、自然語言處理、機器學習、日誌、代碼分析等各個方向的python庫這裡面每個方向的庫都是經典中的經典,國內「開源前哨」團隊還把他們漢化過來了,分享在下面,強烈建議收藏
  • 20行Python代碼,輕鬆提取PPT文字到Word!
    許多小夥伴不管在學校還是在工作當中,都會遇到一個問題,就是將PPT中的文字提取出來保存到word當中,這樣可以方便自己的閱讀或者是將文字列印出來。但是很多時候,小夥伴們只能將PPT中的文字通過複製粘貼的方式,來一張張的提取出來。
  • 六個步驟,封裝你最愛的Python代碼包!
    全文共7134字,預計學習時長14分鐘假設你很喜歡用同一段Python代碼,裡面有幾個相關的小型函數,或者是含有幾百行代碼的中型模塊。程式設計師可能會把它複製到不同的項目或存儲庫中,或者從特別設置的實用工具代碼文件夾中導入這段代碼。 這很正常。程式設計師在編寫代碼的過程中都會不斷積累這些個性化的小工具。
  • 這25條極簡Python代碼,你還不知道
    如果你嘗試用其他語言來做,你可能需要寫10行代碼,但是使用Python,我們可以只用一行代碼就實現FizzBuzz。['FizzBuzz' if i%3==0 and i%5==0    else 'Fizz' if i%3==0     else 'Buzz' if i%5==0     else i  for i in range(1,20)]在上面的代碼中,我們使用列表理解來運行一個從1到20的循環,然後在循環的每次迭代中,我們檢查數字是否能被3或5整除
  • 一行代碼搞定 Python 日誌!
    上例是列印一條 debug 級別的日誌,輸出結果如下:2021-03-16 22:17:23.640 | DEBUG    | __main__::8 - this is a debug message這條輸出日誌信息包含了日期、時間、日誌級別、日誌代碼行數以及日誌內容信息
  • 簡潔且實用Python一行代碼,40個案例講解
    有時候看似複雜的任務,甚至是可以使用一行Python代碼就可以搞定。下面Peter給大家介紹40個有趣且實用的Python的一行代碼,讓我們一起來感受Python的強大~1、列印hello python 每個人都是從print函數開始的print("hello python")
  • 20行代碼竟然就可以給證件照換底色!快收藏
    Python裡竟然20行代碼就可以搞定,學會快收藏!首先我們來準備好需要換證件照:第一步,我們需要在Python中讀取圖片並且顯示出來。這裡面要用到的一個模塊是cv2,如果沒有的話使用pip install opencv-python就可以安裝,注意這裡是安裝opencv-python採可以直接用cv2這個模塊。
  • python教程值得收藏的python語法總結
    非常推薦直接閱讀PEP。類型檢查示例代碼:https://github.com/realpython/materials/tree/master/python-type-checking靜態類型檢查對Python所帶來的副作用主要還是啟動時間上的影響,當然大部分場景所帶來的便利是遠大於這一副作用的。
  • Python編程:Python3+PyCharm+PyQt5開發環境詳細配置,建議收藏
    Python3 + PyCharm + PyQt5開發環境詳細配置前兩天發布了個一個小視頻,詳細介紹了PyCharm開發環境下使用PyQt5界面庫進行Python開發的詳細配置過程,應小夥伴們的強烈要求,這次把文字版內容給大家整理出來了,大家喜歡的話快快收藏吧。
  • 原創通俗易懂的Python的正則表達式,建議收藏
    正則表達式應用的場景也非常多。常見的比如:搜尋引擎的搜索、爬蟲結果的匹配、文本數據的提取等等都會用到,所以掌握甚至精通正則表達式是一個硬性技能,非常必要。Python中則提供了強大的正則表達式處理模塊,即 re 模塊, 為Python的內置模塊。
  • 非常實用的Python庫
    Wget 是一個免費的實用程序,可以用於從網絡上下載非交互式的文件。它支持 HTTP、HTTPS 和 FTP 協議,以及通過 HTTP 的代理進行文件檢索。由於它是非交互式的,即使用戶沒有登錄,它也可以在後臺工作。所以下次當你想要下載一個網站或者一個頁面上的所有圖片時,wget 可以幫助你。