溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python有哪些技巧能編寫更好的代碼

發(fā)布時間:2021-11-01 16:40:40 來源:億速云 閱讀:163 作者:iii 欄目:編程語言

這篇文章主要講解了“Python有哪些技巧能編寫更好的代碼”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python有哪些技巧能編寫更好的代碼”吧!

技巧01-變量的多重分配

Python允許我們在一行中為多個變量分配值。 可以使用逗號分隔變量。 一線多任務(wù)有很多好處。 它可用于為多個變量分配多個值或為單個變量名稱分配多個值。  讓我們做一個問題陳述,其中我們必須將值50和60分配給變量a和b。 常規(guī)代碼如下所示。

a = 50  b = 60 print(a,b) print(type(a)) print(type(b))

輸出量

50  60  <class 'int'>  <class 'int'>

條件I-值等于變量

當變量和多個賦值相等時,每個值將存儲在所有變量中。

a , b = 50 , 60 print(a,b) print(type(a)) print(type(b))

輸出量

50  60 <class 'int'> <class 'int'>

這兩個程序給出相同的結(jié)果。 這是使用一個行值分配的好處。

條件II-值大于變量

讓我們嘗試增加上一個程序中的值數(shù)量。 可以將多個值分配給單個變量。 在為變量分配多個值時,我們必須在變量名稱前使用星號。

a , *b = 50 , 60 , 70 print(a) print(b) print(type(a)) print(type(b))

輸出量

50 [60, 70] <class 'int'> <class 'list'>

第一個值將分配給第一個變量。 第二個變量將從給定值中收集值。 這將創(chuàng)建一個列表類型對象。

條件III-多變量一個值

我們可以為多個變量分配一個值。 每個變量將使用等號分隔。

a = b = c = 50 print(a,b,c) print(type(a)) print(type(b)) print(type(c))

輸出量

50 50 50 <class 'int'> <class 'int'> <class 'int'>

技巧02-交換兩個變量

交換是彼此交換兩個變量的值的過程。 這在計算機科學(xué)的許多操作中可能很有用。 在這里,我編寫了兩種主要的方法供程序員用來交換值以及最佳解決方案。

方法I-使用臨時變量

此方法使用臨時變量存儲一些數(shù)據(jù)。 以下代碼使用臨時變量名編寫。

a , b = 50 , 60 print(a,b) temp = a+b  #a=50 b=60 temp=110 b = a  #a=50 b=50 temp=110 a = temp-b  #a=60 b=50 temp=110 print("After swapping:",a,b)

輸出量

50 60  After swapping: 60 50

方法II-不使用臨時變量

以下代碼在不使用臨時變量的情況下交換了變量。

a , b = 50 , 60 print(a,b) a = a+b  #a=110 b=60 b = a-b  #a=110 b=50 a = a-b  #a=60 b=50 print("After swapping:",a,b)

輸出量

50 60  After swapping: 60 50

方法III-Python中的優(yōu)秀解決方案

這是使用python交換變量的另一種方法。 在上一節(jié)中,我們了解了多個分配。 我們可以使用交換的概念。

a , b = 50 , 60 print(a,b) a , b = b , a print("After swapping",a,b)

輸出量

50 60  After swapping 60 50

技巧03-反轉(zhuǎn)字符串

還有另一個很酷的技巧可以在python中反轉(zhuǎn)字符串。 用于反轉(zhuǎn)字符串的概念稱為字符串切片。 可以在變量名稱后使用符號[::-1]反轉(zhuǎn)任何字符串。

my_string = "MY STRING" rev_string = my_string[::-1] print(rev_string)

輸出量

GNIRTS YM

技巧04-在一行中拆分單詞

將單詞分割成一行不需要特殊的算法。 為此,我們可以使用關(guān)鍵字split()。 在這里,我寫了兩種分割單詞的方法。

方法一-使用迭代

my_string = "This is a string in Python" start = 0 end = 0 my_list = [] for x in my_string:      end=end+1      if(x==' '):      my_list.append(my_string[start:end])      start=end+1     my_list.append(my_string[start:end+1]) print(my_list)

輸出量

['This ', 'is ', 'a ', 'string ', 'in ', 'Python']

方法II-使用分割功能

my_string = "This is a string in Python" my_list = my_string.split(' ') print(my_list)

輸出量

['This ', 'is ', 'a ', 'string ', 'in ', 'Python']

技巧05-將單詞列表排成一行

這與上一個過程相反。 在這一部分中,我們將使用join函數(shù)將單詞列表轉(zhuǎn)換為單行。 下面給出了使用join函數(shù)的語法。

語法:"" .join(string)

my_list = ['This' , 'is' , 'a' , 'string' , 'in' , 'Python'] my_string = " ".join(my_list)

輸出量

This is a string in Python

技巧06-多次打印字符串

我們可以使用乘法運算符多次打印字符串。 這是重復(fù)字符串的非常有效的方法。

n = int(input("How many times you need to repeat:")) my_string = "Python\n" print(my_string*n)

輸出量

How many times you need to repeat:3  PythonPythonPython

技巧07-使用加法運算符連接兩個字符串

可以在不使用join函數(shù)的情況下連接各種字符串。 我們可以只使用加法運算符(+)來執(zhí)行此操作。

a = "I Love " b = "Python" print(a+b)

輸出量

I Love Python

技巧08-多個條件運算符

兩個可以在程序中組合兩個或多個條件運算符,我們可以使用邏輯運算符。 但是,通過鏈接運算符可以得到相同的結(jié)果。  例如,如果我們需要在變量的值大于10且小于20時打印某些內(nèi)容,則代碼將類似于以下內(nèi)容。

a = 15 if (a>10 and a<20):      print("Hi")

取而代之的是,我們可以將條件運算符組合成單個表達式。

a = 15 if (10 < a < 20):      print("Hi")

輸出量

Hi

技巧09-在列表中查找最頻繁的元素

在列表中大部分時間出現(xiàn)的元素,然后將成為列表中最頻繁出現(xiàn)的元素。 以下代碼段將幫助您從列表中獲取最頻繁的元素。

my_list = [1,2,3,1,1,4,2,1] most_frequent = max(set(my_list),key=my_list.count) print(most_frequent)

輸出量

1

技巧10-查找列表中所有元素的出現(xiàn)

先前的代碼將提供最頻繁的值。 如果我們需要知道列表中所有唯一元素的出現(xiàn),則可以使用收集模塊。 該集合是python中一個很棒的模塊,它提供了強大的功能。  Counter方法提供具有元素和出現(xiàn)對的字典。

from collections import Counter my_list = [1,2,3,1,4,1,5,5] print(Counter(my_list))

輸出量

Counter({1: 3, 5: 2, 2: 1, 3: 1, 4: 1})

技巧11-檢查兩個字符串的字謎

如果一個字符串由另一字符串中的字符組成,則兩個字符串是字謎。 我們可以在collections模塊中使用相同的Counter方法。

from collections import Counter my_string_1 = "RACECAR" my_string_2 = "CARRACE"  if(Counter(my_string_1) == Counter(my_string_2)):      print("Anagram") else: print("Not Anagram")

輸出量

Anagram

技巧12-創(chuàng)建帶范圍的數(shù)字序列

函數(shù)range()對于創(chuàng)建數(shù)字序列很有用。 在許多代碼片段中,它可能很有用。 范圍函數(shù)的語法在此處編寫。

語法:range(開始,結(jié)束,步長)

讓我們嘗試創(chuàng)建一個偶數(shù)列表。

my_list = list(range(2,20,2)) print(my_list)

輸出量

[2, 4, 6, 8, 10, 12, 14, 16, 18]

技巧13-多次重復(fù)元素

與字符串乘法相似,我們可以使用乘法運算符創(chuàng)建一個多次填充元素的列表。

my_list = [3] my_list = my_list*5 print(my_list)

輸出量

[3, 3, 3, 3, 3]

技巧14-在三元運算符中使用條件

在大多數(shù)情況下,我們在Python中使用嵌套的條件結(jié)構(gòu)。 除了使用嵌套結(jié)構(gòu),還可以在三元運算符的幫助下替換一行。 語法在下面給出。

語法:if True then Statement1 else Statement2

if age > 20 then age = 25, print("czz")else print("不合格")

輸出量

合格

技巧15-使用Python列表推導(dǎo)表達式

列表推導(dǎo)表達式是從另一個列表創(chuàng)建列表的一種非常緊湊的方法。 看下面的代碼。 第一個是使用簡單的迭代編寫的,第二個是使用列表理解的。

square_list = [] for x in range(1,10):      temp = x**2 square_list.append(temp) print(square_list)

輸出量

[1, 4, 9, 16, 25, 36, 49, 64, 81]

使用列表推導(dǎo)表達式

square_list = [x**2 for x in range(1,10)] print(square_list)

輸出量

[1, 4, 9, 16, 25, 36, 49, 64, 81]

技巧16-將可變項轉(zhuǎn)換為不可變項

函數(shù)frozenset()用于將可變的可迭代對象轉(zhuǎn)換為不可變對象。 使用此方法,我們可以凍結(jié)對象的值更改。

my_list = [1,2,3,4,5] my_list = frozenset(my_list) my_list[3]=7 print(my_list)

輸出量

Traceback (most recent call last): File "<string>", line 3, in <module>TypeError: 'frozenset' object does not support item assignment

當我們將frozenset()函數(shù)應(yīng)用于列表時,項目分配受到限制。

技巧17-用floor和Ceil四舍五入

Floor和Ceil是數(shù)學(xué)函數(shù),可用于浮點數(shù)。 floor函數(shù)返回的整數(shù)小于浮點數(shù),而ceil函數(shù)返回的整數(shù)大于浮點數(shù)。  要使用此功能,我們必須導(dǎo)入數(shù)學(xué)模塊。

import math my_number = 18.7 print(math.floor(my_number)) print(math.ceil(my_number))

輸出量

1819

技巧18-返回布爾值

有時我們必須通過檢查某些參數(shù)的條件來返回布爾值。 代替編寫if語句,我們可以直接返回條件。 以下程序?qū)a(chǎn)生相同的輸出。

方法I-使用其他條件

def function(n):      if(n>10):      return True      else: return False  n = int(input()) if(function(n)):     print("Eligible") else:      print("Not Eligible")

方法II-無其他條件

def function(n):      return n>10  n = int(input())  print("Eligible") if function(n) else print("Not Eligible")

輸出量

Eligible

技巧19-一行創(chuàng)建函數(shù)

Lambda是python中的匿名函數(shù),可在一行中創(chuàng)建函數(shù)。 這里給出了使用lambda函數(shù)的語法。

語法:lambda 參數(shù):表達式

x = lambda a,b,c : a+b+c print(x(10,20,30))

輸出量

60

技巧20-將功能應(yīng)用于列表中的所有元素

map是一個高階函數(shù),它對列表中的所有元素應(yīng)用特定功能。

語法:map(函數(shù),可迭代)

my_list = ["felix", "antony"] new_list = map(str.capitalize,my_list) print(list(new_list))

輸出量

['Felix', 'Antony']

技巧21-將Lambda與map功能配合使用

該函數(shù)可以用python中的lambda函數(shù)替換。 創(chuàng)建以下程序以創(chuàng)建數(shù)字列表的平方。

my_list = [1, 2, 3, 4, 5] new_list = map(lambda x: x*x, my_list) print(list(new_list))

輸出量

[1, 4, 9, 16, 25]

技巧22-從函數(shù)返回多個值

python函數(shù)可以返回多個值,而無需任何額外的需要。 我們可以通過用逗號分隔它們來返回值。

def function(n):      return 1,2,3,4  a,b,c,d = function(5) print(a,b,c,d)

輸出量

1 2 3 4

技巧23-使用filter函數(shù)過濾值

filter函數(shù)用于過濾可迭代對象中的某些值。 filter函數(shù)的語法如下。

語法:filter(函數(shù),迭代)

def eligibility(age):      return age>=24  list_of_age = [10, 24, 27, 33, 30, 18, 17, 21, 26, 25] age = filter(eligibility, list_of_age) print(list(age))

輸出量

[24, 27, 33, 30, 26, 25]

技巧24-用Python合并兩個字典

在python中,我們可以合并兩個字典,而無需任何特定方法。 下面的代碼是合并兩個字典的示例。

dict_1 = {'One':1, 'Two':2} dict_2 = {'Two':2, 'Three':3} dictionary = {**dict_1, **dict_2} print(dictionary)

輸出量

{'One': 1, 'Two': 2, 'Three': 3}

技巧25-獲取對象的大小

內(nèi)存大小根據(jù)對象的類型而變化。 我們可以使用sys模塊中的getsizeof()函數(shù)獲取對象的內(nèi)存。

import sys a = 5 print(sys.getsizeof(a))

輸出量

28

竅門26-將兩個列表組合成字典

郵編功能在python中有很多優(yōu)點。 使用zip函數(shù),我們可以從兩個列表創(chuàng)建字典。

list_1 = ["One","Two","Three"] list_2 = [1,2,3] dictionary = dict(zip(list_1, list_2)) print(dictionary)

輸出量

{'Two': 2, 'One': 1, 'Three': 3}

技巧27-計算程序的執(zhí)行時間

時間是python中另一個有用的模塊,可用于計算執(zhí)行時間。

import time start = time.clock() for x in range(1000):    pass end = time.clock() total = end - start print(total)

輸出量

0.00011900000000000105

技巧28-刪除列表中的重復(fù)元素

發(fā)生多次的元素稱為重復(fù)元素。 我們可以使用類型轉(zhuǎn)換簡單地刪除重復(fù)的元素。

my_list = [1,4,1,8,2,8,4,5] my_list = list(set(my_list)) print(my_list)

輸出量

[8, 1, 2, 4, 5]

技巧29-用python打印月歷

日歷模塊具有許多與基于日期的操作有關(guān)的功能。 我們可以使用以下代碼打印每月日歷。

import calendar print(calendar.month("2020","06"))

輸出量

June 2020 Mo Tu We Th Fr Sa Su  1 2 3 4 5 6 7  8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

技巧30-使用zip功能進行迭代

zip函數(shù)允許使用循環(huán)迭代多個可迭代的過程。 在下面的代碼中,兩個列表同時被迭代。

list_1 = ['a','b','c'] list_2 = [1,2,3] for x,y in zip(list_1, list_2):   print(x,y)

輸出量

a 1b 2c 3

感謝各位的閱讀,以上就是“Python有哪些技巧能編寫更好的代碼”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python有哪些技巧能編寫更好的代碼這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI