中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

25 個(gè)有用的Python代碼段

2020-01-08    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

Python 是一種通用的高級(jí)編程語(yǔ)言。用它可以做許多事,比如開(kāi)發(fā)桌面 GUI 應(yīng)用程序、網(wǎng)站和 Web 應(yīng)用程序等。
并且,通過(guò)處理常見(jiàn)的編程任務(wù),Python 能讓開(kāi)發(fā)者專注應(yīng)用程序的核心功能。此外,Python 語(yǔ)言的簡(jiǎn)單語(yǔ)法規(guī)則進(jìn)一步簡(jiǎn)化了代碼庫(kù)的可讀性和應(yīng)用程序的可維護(hù)性。
 

作者:Abhinav Sagar 譯者:Sambodhi 來(lái)源:InfoQ

與其他編程語(yǔ)言相比,Python 的優(yōu)勢(shì)在于:

與主要平臺(tái)和操作系統(tǒng)兼容;
有許多開(kāi)源框架和工具;
代碼具備可讀性和可維護(hù)性;
健壯的標(biāo)準(zhǔn)庫(kù);
標(biāo)準(zhǔn)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)

在本文,我將介紹 25 個(gè)簡(jiǎn)短且有用的代碼段,它們可以幫你完成日常任務(wù)。

1. 在兩個(gè)變量之間交換值

在其他語(yǔ)言中,要在兩個(gè)變量間交換值而不是用第三個(gè)變量,我們要么使用算術(shù)運(yùn)算符,要么使用位異或(Bitwise XOR)。在 Python 中,它就簡(jiǎn)單多了,如下所示。

a = 5
b = 10
a,b = b,a
print(a) # 10
print(b) # 5

2. 檢查給定的數(shù)字是否為偶數(shù)

如果給定的數(shù)字為偶數(shù),則如下函數(shù)返回 Ture,否則返回 False。

def is_even(num):
return num % 2 == 0

is_even(10) # True

3. 將多行字符串拆分為行列表

以下函數(shù)可用于將多行字符串拆分為行列表。

def split_lines(s):
return s.split('\n')
split_lines('50\n python\n snippets') # ['50', ' python', ' snippets']

4. 查找對(duì)象使用的內(nèi)存

標(biāo)準(zhǔn)庫(kù)的 sys 模塊提供了 getsizeof() 函數(shù)。該函數(shù)接受一個(gè)對(duì)象,調(diào)用對(duì)象的 sizeof() 方法,并返回結(jié)果,這樣做能使對(duì)象可檢查。

import sys
print(sys.getsizeof(5)) # 28
print(sys.getsizeof("Python")) # 55

5. 反轉(zhuǎn)字符串

Python 字符串庫(kù)不像其他 Python 容器(如 list) 那樣支持內(nèi)置的 reverse()。反轉(zhuǎn)字符串有很多方法,其中最簡(jiǎn)單的方法是使用切片運(yùn)算符(slicing operator)。

language = "python"
reversed_language = language[::-1]
print(reversed_language) # nohtyp

6. 打印字符串 n 次

在不使用循環(huán)的情況下,要打印一個(gè)字符串 n 次是非常容易的,如下所示。

def repeat(string, n):
return (string * n)

repeat('python', 3) # pythonpythonpython

7. 檢查字符串是否為回文

以下函數(shù)用于檢查字符串是否為回文。

def palindrome(string):
return string == string[::-1]

palindrome('python') # False

8. 將字符串列表合并為單個(gè)字符串

下面的代碼段將字符串列表組合成單個(gè)字符串。

strings = ['50', 'python', 'snippets']
print(','.join(strings)) # 50,python,snippets

9. 查找列表的第一個(gè)元素

此函數(shù)返回所傳遞列表的第一個(gè)元素。

def head(list):
return list[0]

print(head([1, 2, 3, 4, 5])) # 1

10. 查找存在于兩個(gè)列表中任一列表存在的元素

此函數(shù)返回兩個(gè)列表中任一列表中的每個(gè)元素。

def union(a,b):
return list(set(a + b))
union([1, 2, 3, 4, 5], [6, 2, 8, 1, 4]) # [1,2,3,4,5,6,8]

11. 查找給定列表中的所有唯一元素

此函數(shù)返回給定列表中存在的唯一元素。

def unique_elements(numbers):
return list(set(numbers))

unique_elements([1, 2, 3, 2, 4]) # [1, 2, 3, 4]

12. 求一組數(shù)字的平均值

此函數(shù)返回列表中兩個(gè)或多個(gè)數(shù)字的平均值。

def average(*args):
return sum(args, 0.0) / len(args)

average(5, 8, 2) # 5.0

13. 檢查列表是否包含所有唯一值

此函數(shù)檢查列表中的所有元素是否都是唯一的。

def unique(list):
if len(list)==len(set(list)):
print("All elements are unique")
else:
print("List has duplicates")

unique([1,2,3,4,5]) # All elements are unique

14. 跟蹤列表中元素的頻率

Python 計(jì)數(shù)器跟蹤容器中每個(gè)元素的頻率。 Counter() 返回一個(gè)以元素為鍵、以其出現(xiàn)頻率為值的字典。

from collections import Counter
list = [1, 2, 3, 2, 4, 3, 2, 3]
count = Counter(list)
print(count) # {2: 3, 3: 3, 1: 1, 4: 1}

15. 查找列表中最常用的元素

此函數(shù)返回列表中出現(xiàn)頻率最高的元素。

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

numbers = [1, 2, 3, 2, 4, 3, 1, 3]
most_frequent(numbers) # 3

16. 將角度轉(zhuǎn)換為弧度

下面的函數(shù)用于將角度轉(zhuǎn)換為弧度。

import math
def degrees_to_radians(deg):
return (deg * math.pi) / 180.0

degrees_to_radians(90) # 1.5707963267948966

17. 計(jì)算執(zhí)行一段代碼所需的時(shí)間

以下代碼段用于計(jì)算執(zhí)行一段代碼所需的時(shí)間。

import time
start_time = time.time()
a,b = 5,10
c = a+b
end_time = time.time()
time_taken = (end_time- start_time)*(10**6)
print("Time taken in micro_seconds:", time_taken) # Time taken in micro_seconds: 39.577484130859375

18. 查找數(shù)字列表的最大公約數(shù)

此函數(shù)計(jì)算數(shù)字列表中的最大公約數(shù)。

from functools import reduce
import math
def gcd(numbers):
return reduce(math.gcd, numbers)
gcd([24,108,90]) # 6

19. 查找字符串中的唯一字符

此代碼段可用于查找字符串中的所有唯一字符。

string = "abcbcabdb"
unique = set(string)
new_string = ''.join(unique)
print(new_string) # abcd

20. 使用 lambda 函數(shù)

Lambda 是一個(gè)匿名函數(shù),它只能保存一個(gè)表達(dá)式。

x = lambda a, b, c : a + b + c
print(x(5, 10, 20)) # 35

21. 使用映射函數(shù)

此函數(shù)在將給定函數(shù)應(yīng)用于給定迭代的每個(gè)項(xiàng)(列表、元組等)之后,返回一個(gè)結(jié)果列表。

def multiply(n):
return n * n

list = (1, 2, 3)
result = map(multiply, list)
print(list(result)) # {1, 4, 9}

22. 使用篩選函數(shù)

此函數(shù)在通過(guò)一個(gè)函數(shù)過(guò)濾給定的序列,測(cè)試序列中的每個(gè)元素是否為真。

arr = [1, 2, 3, 4, 5]
arr = list(filter(lambda x : x%2 == 0, arr))
print (arr) # [2, 4]

23. 使用列表解析

列表解析(list comprehensions)為我們提供了一種基于某些迭代創(chuàng)建列表的簡(jiǎn)單方法。在創(chuàng)建過(guò)程中,可以將來(lái)自可迭代的元素有條件地包含到新列表中,并根據(jù)需要進(jìn)行轉(zhuǎn)換。

numbers = [1, 2, 3]
squares = [number**2 for number in numbers]
print(squares) # [1, 4, 9]

24. 使用切片運(yùn)算符

切片(Slicing)用于從給定序列中提取連續(xù)的元素序列或子序列。下面的函數(shù)用于連接兩個(gè)切片運(yùn)算的結(jié)果。首先,我們將列表從索引 d 切片到末尾,然后從開(kāi)頭切片到索引 d。

def rotate(arr, d):
return arr[d:] + arr[:d]

if __name__ == '__main__':
arr = [1, 2, 3, 4, 5]
arr = rotate(arr, 2)
print (arr) # [3, 4, 5, 1, 2]

25. 使用函數(shù)鏈?zhǔn)秸{(diào)用

最后的代碼段用于從一行調(diào)用多個(gè)函數(shù)并計(jì)算結(jié)果。

def add(a, b):
return a + b
def subtract(a, b):
return a - b
a, b = 5, 10
print((subtract if a > b else add)(a, b)) # 15

英文原文:25 Useful Python Snippets to Help in Your Day-to-Day Work

標(biāo)簽: Python

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:2019 年薪水最高的十三個(gè)技術(shù)崗位

下一篇:2020信息通信產(chǎn)業(yè)十大技術(shù)趨勢(shì)發(fā)布