Python學(xué)習(xí)小技巧總結(jié)
三元條件判斷的3種實(shí)現(xiàn)方法
C語(yǔ)言中有三元條件表達(dá)式,如 a>b?a:b,Python中沒(méi)有三目運(yùn)算符(?:),但Python有它自己的方式來(lái)實(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條件判斷的特性來(lái)實(shí)現(xiàn)三元條件判斷
首先介紹一下,and和or的用法:
python 中的and從左到右計(jì)算表達(dá)式,若所有值均為真,則返回最后一個(gè)值,若存在假,返回第一個(gè)假值。
無(wú)論是列表,元組還是字符串,空表示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條件判斷的特性來(lái)實(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)
以下問(wèn)題都是在用Python寫(xiě)KNN的時(shí)候遇到的:
dict_items()
python 字典(dict)的特點(diǎn)就是無(wú)序的,按照鍵(key)來(lái)提取相應(yīng)值(value),如果我們需要字典按值排序的話,那可以用下面的方法來(lái)進(jìn)行:
1 下面的是按照value的值從大到小的順序來(lái)排序。
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方法,通過(guò)key這個(gè)參數(shù),指定排序是按照value,也就是元素d[1]的值來(lái)排序。reverse = True表示是需要翻轉(zhuǎn)的,默認(rèn)是從小到大,翻轉(zhuǎn)的話,那就是從大到小。
2 對(duì)字典按鍵(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)文章
pandas常用表連接merge/concat/join/append詳解
使用python的pandas庫(kù)可以很容易幫你搞定,而且性能也是很出色的;百萬(wàn)級(jí)的表關(guān)聯(lián),可以秒出,本文給大家分享pandas常用表連接merge/concat/join/append詳解,感興趣的朋友跟隨小編一起看看吧2023-02-02
python基于multiprocessing的多進(jìn)程創(chuàng)建方法
這篇文章主要介紹了python基于multiprocessing的多進(jìn)程創(chuàng)建方法,實(shí)例分析了multiprocessing模塊操作進(jìn)程的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python數(shù)據(jù)挖掘中常用的五種AutoEDA 工具總結(jié)
大家好,我們都知道在數(shù)據(jù)挖掘的過(guò)程中,數(shù)據(jù)探索性分析一直是非常耗時(shí)的一個(gè)環(huán)節(jié),但也是繞不開(kāi)的一個(gè)環(huán)節(jié),本篇文章帶你盤(pán)點(diǎn)數(shù)據(jù)挖掘中常見(jiàn)的5種 AutoEDA 工具2021-11-11
python如果快速判斷數(shù)字奇數(shù)偶數(shù)
這篇文章主要介紹了python如果快速判斷數(shù)字奇數(shù)偶數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

