Python 是全世界程式設計師使用最廣泛的語言之一。它可用應用於機器學習、深度學習和數據科學的各種項目。語法簡潔也使得它成為 Python 初學者的首選語言。
今天教大家一些 Python 技巧,它可以使你的代碼更優雅和高效。
列表只需一行代碼,讓你的代碼看起來更簡潔,並且看起來更專業。
a = [2,5,7,9]
b = []
for i in range(len(a)):
b.append(a[i]+1)這是正常的 code 方式,現在讓它更加簡潔、專業一點。
a = [2,5,7,9]
b = [a[i]+1 for i in range(len(a))]你可以看到代碼之間的差別。現在這只是一個簡單的例子,後續你會發現有更多的應用案例,並可以大幅幫你減少代碼長度。
反轉字符串讓我們編寫一些代碼來反轉字符串。
def reverse_string(string):
result=""
for c in range(len(string),-1,-1):
result = result + string[c]
return result看起來有點亂吧, 用另一種方式來表達:
def reverse_string(string):
result = [ string[c] for c in range(len(string),-1,-1)]
return "".join(result)看起來不錯吧,其實使用切片的方法可以更好,方法如下:
def reverse_string(string):
return string[::-1]
將數字與數字進行求和將數字與數字進行求和,這是一個非常簡單的問題,
首先,我們可以用傳統方法解決這個問題:
def sum_a_num(num):
sum = 0
while num > 0:
sum+= num%10
num//=10
return sum這是可以的,但在緊張的情況下,最終可能會與運算符發生拼寫錯誤或錯誤,最終得到錯誤的結果,並花費數小時嘗試調試代碼。
因此,要避免這種情況,有一個更好的方法做到這一點。
def sum_a_num(num):
return sum(list(map(int,str(num))))現在上述代碼所做的是:
map() 函數在字符串上遍數,並將每個字符轉換為整數;list() 函數將映射對象轉換為列表,然後求和;num = 2367
str(num) = '2367'
list(map(int,str(num))) = [2,3,6,7]
sum(list(map(int(str(num)))) = 18
交換兩個數字現在,這是一件非常簡單的事情。
x = 10
y = 15
x = x + y
y = x - y
x = x - y但是,讓我們在一行代碼中做到這一點
x = 10
y = 15
x,y = y,x這樣更好。不是嗎?
列表或字符串中最常見的元素有多種方法可以實現此需求,我們可以使用循環以簡單的方式做到這一點。下面我分享兩種更高效的方法:
l = [1,2,1,4,6,2,7,8,2,2]
print(max(l,key = l.count))或者
my_string = "python_is_great"
print(sorted(my_string,key = my_string.count)[0])