溫馨提示×

溫馨提示×

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

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

Python學(xué)習(xí)小技巧有哪些

發(fā)布時(shí)間:2021-08-20 09:27:29 來源:億速云 閱讀:106 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Python學(xué)習(xí)小技巧有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

三元條件判斷的3種實(shí)現(xiàn)方法

C語言中有三元條件表達(dá)式,如 a>b?a:b,Python中沒有三目運(yùn)算符(?:),但Python有它自己的方式來實(shí)現(xiàn)類似的功能。這里介紹3種方法:

true_part if condition else false_part

a,b=2,3
c=a if a>b else b

a,b=2,1
c=a if a>b else b

>>> print c
2

利用and-or條件判斷的特性來實(shí)現(xiàn)三元條件判斷

首先介紹一下,and和or的用法:

python 中的and從左到右計(jì)算表達(dá)式,若所有值均為真,則返回最后一個(gè)值,若存在假,返回第一個(gè)假值。

無論是列表,元組還是字符串,空表示False,非空表示True

>>> 'python' and [] and (2,3)
[]
>>> 'python' and [2,3] and (3,4)
(3, 4)

or 也是從左到右計(jì)算表達(dá)式,存在真,則返回第一個(gè)為真的值,若均為假,則返回最后一個(gè)值。

>>> 'python' or [3,4] or ()
'python'
>>> '' or [] or ()
()

然后,我們利用and-or條件判斷的特性來實(shí)現(xiàn)三元條件判斷:

a,b=2,1
c = (a>b and [a] or [b])[0]

>>> print c
2

使用列表

a,b=2,7
c = [b,a][a>b]

>>> print c
7

分析:若a>b為真,由于真用1表示,因此相當(dāng)于c=[b,a][1],即c=a

若a>b為假,由于假用0表示,因此相當(dāng)于c=[b,a][0],即c=b

>>> int(False)
0
>>> int(True)
1

字典(dict)

以下問題都是在用Python寫KNN的時(shí)候遇到的:

dict_items()

python 字典(dict)的特點(diǎn)就是無序的,按照鍵(key)來提取相應(yīng)值(value),如果我們需要字典按值排序的話,那可以用下面的方法來進(jìn)行:

1 下面的是按照value的值從大到小的順序來排序。

dic = {‘a(chǎn)':31, ‘bc':5, ‘c':3, ‘a(chǎn)sd':4, ‘a(chǎn)a':74, ‘d':0}
dict= sorted(dic.items(), key=lambda d:d[1], reverse = True)
print(dict)

輸出的結(jié)果:

[(‘a(chǎn)a', 74), (‘a(chǎn)', 31), (‘bc', 5), (‘a(chǎn)sd', 4), (‘c', 3), (‘d', 0)]

下面我們分解下代碼:

print dic.items() 得到[(鍵,值)]的列表。

然后用sorted方法,通過key這個(gè)參數(shù),指定排序是按照value,也就是元素d[1]的值來排序。reverse = True表示是需要翻轉(zhuǎn)的,默認(rèn)是從小到大,翻轉(zhuǎn)的話,那就是從大到小。

2 對字典按鍵(key)排序:

dic = {‘a(chǎn)':31, ‘bc':5, ‘c':3, ‘a(chǎn)sd':4, ‘a(chǎn)a':74, ‘d':0}
dict= sorted(dic.items(), key=lambda d:d[0])
print(dict)

dict_get()

dic = {‘a(chǎn)':31, ‘bc':5, ‘c':3, ‘a(chǎn)sd':4, ‘a(chǎn)a':74, ‘d':0}

dic.get(‘a(chǎn)',1) 
31 
dic.get(‘d',1) 
0 
dic.get(‘f',1) 
1

D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.

如果k在字典中,返回D[k],即value值,否則返回d,d默認(rèn)為None

Image和Ndarray互相轉(zhuǎn)換

import numpy as np
from PIL import Image

img = Image.open(filepath)
img_convert_ndarray = np.array(img)
ndarray_convert_img= Image.fromarray(img_convert_ndarray )


# np.array(object) 這個(gè)函數(shù)很強(qiáng)大啊,看源碼里面給的注釋
# object : array_like
#      An array, any object exposing the array interface, an object whose
#      __array__ method returns an array, or any (nested) sequence.

感謝各位的閱讀!關(guān)于“Python學(xué)習(xí)小技巧有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

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

AI