溫馨提示×

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

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

分享幾個(gè)不為人知的python使用技巧

發(fā)布時(shí)間:2020-11-09 15:43:04 來(lái)源:億速云 閱讀:129 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章為大家展示了分享幾個(gè)不為人知的python使用技巧,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

1 如何在if語(yǔ)句中檢測(cè)多個(gè)條件

不推薦方式

flag1 = 1
flag2 = 0
flag3 = 0

if flag1 == 1 or flag2 == 1 or flag3 == 1:
print 'ok'

推薦方式

flag1 = 1
flag2 = 0
flag3 = 0

if 1 in (flag1, flag2, flag3):
print 'ok'

可以看到,前一種方式重復(fù)代碼太多,不推薦。后一種寫(xiě)法更簡(jiǎn)潔、易讀。另外,其實(shí)也可以通過(guò)any函數(shù)實(shí)現(xiàn),如下:

if any((flag1, flag2, flag3)):
print 'ok'

2 如何從list中隨機(jī)采樣元素

import random


all_data = [num for num in range(100)]
sample_data = random.sample(all_data, 20)
print sample_data
# [71, 25, 58, 79, 70, 69, 93, 29, 11, 30, 40, 81, 12, 48, 91, 21, 83, 42, 38, 31]

這里是從100個(gè)元素中,隨機(jī)采樣20個(gè)元素??梢钥吹剑柚鷕andom模塊的sample函數(shù)可以很輕易實(shí)現(xiàn)采樣功能。python的random模塊很有意思,大家感興趣可以看看,能實(shí)現(xiàn)很多有趣的功能。比如可以輕易實(shí)現(xiàn)“洗牌”功能:

import random


order_list = range(10)
print order_list
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(order_list)
print order_list
# [3, 5, 9, 0, 8, 7, 1, 2, 6, 4]

3 如何測(cè)試函數(shù)運(yùn)行時(shí)間

不推薦方式

import time


def func1():
time.sleep(2)


begin_time = time.time()
func1()
passed_time = time.time() - begin_time
print passed_time
# 2.00099992752

推薦方式

import time
from timeit import timeit


def func1():
time.sleep(2)


print timeit(stmt="func1()",
setup="from __main__ import func1",
number=1)
# 2.00122451254

借助python的timeit模塊,可以很輕易的測(cè)試出函數(shù)運(yùn)行時(shí)間。在不知道timeit模塊之前,我就是用前一種方式測(cè)試函數(shù)運(yùn)行時(shí)間的,別笑。

上述內(nèi)容就是分享幾個(gè)不為人知的python使用技巧,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI