欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中random模塊常用方法的使用教程

 更新時(shí)間:2020年10月04日 10:55:35   作者:Python碎片  
這篇文章主要給大家介紹了關(guān)于Python中random模塊常用方法的使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

Python 的random模塊包含許多隨機(jī)數(shù)生成器。

random是Python標(biāo)準(zhǔn)庫(kù)之一,直接導(dǎo)入即可使用。本文介紹random中常用方法的用法。

一、生成隨機(jī)的整數(shù)

# coding=utf-8
import random
 
 
print(random.randint(1, 5))
print(random.randrange(0, 51, 5))

運(yùn)行結(jié)果:

3
40

randint(start, end)會(huì)返回一個(gè)start到end之間的整數(shù),這里是左閉右閉區(qū)間。也就是說(shuō)可能會(huì)返回end值,在Python中,這個(gè)是一個(gè)比較特殊的地方,一般來(lái)說(shuō)都是左閉右開(kāi)的區(qū)間。

randrange(start, end, step)返回一個(gè)range(start, end, step)生成的列表中的隨機(jī)一個(gè)值。這里是左閉右開(kāi)區(qū)間,如果上面代碼的51如果換成50,則不可能返回50。

每次運(yùn)行的結(jié)果是不同的,因?yàn)槭请S機(jī)返回其中一個(gè)。

二、生成隨機(jī)的小數(shù)

print(random.random())
print(random.uniform(2, 5))

運(yùn)行結(jié)果:

0.49541524802465897
2.948656863619216

random()返回0到1之間的任意一個(gè)浮點(diǎn)數(shù)。

uniform(start, end)返回start到end之間的任意一個(gè)浮點(diǎn)數(shù),其實(shí)就是將random()的結(jié)果乘(end-start),代碼就是這么實(shí)現(xiàn)的。

三、從字符串、列表、元組中隨機(jī)返回一個(gè)值

choice_str = 'python'
print(random.choice(choice_str))
choice_list = [i for i in range(1, 6)]
print("choice_list: ", choice_list)
print(random.choice(choice_list))
choice_tuple = (10, 20, 30, 40, 50)
print(random.choice(choice_tuple))

運(yùn)行結(jié)果:

h
choice_list:  [1, 2, 3, 4, 5]
5
20

choice()返回可迭代對(duì)象中的一個(gè)值??梢允橇斜怼⒃M、字符串,不能是字典和集合。

四、從字符串、列表、元組中隨機(jī)返回一次或多次,且設(shè)置權(quán)重

choice_list = [i for i in range(1, 6)]
print("choice_list: ", choice_list)
print(random.choices(choice_list))
choice_tuple = (10, 20, 30, 40, 50)
print(random.choices(choice_tuple, k=2))
choice_str = 'python'
print(random.choices(choice_str, weights=[0.5, 0, 0.5, 0, 0, 0], k=7))
print(random.choices(choice_str, cum_weights=[0, 0.5, 0.5, 1, 1, 1], k=7))

運(yùn)行結(jié)果:

choice_list:  [1, 2, 3, 4, 5]
[4]
[20, 50]
['t', 'p', 't', 'p', 'p', 't', 't']
['h', 'y', 'h', 'h', 'h', 'h', 'y']

choices(population, weights=None, cum_weights=None, k=1)從可迭代對(duì)象中返回一次或多次值,返回結(jié)果是一個(gè)列表。

weights是每一個(gè)值對(duì)應(yīng)的權(quán)重列表,默認(rèn)是None,所有元素權(quán)重相等。傳入權(quán)重列表時(shí),列表長(zhǎng)度必須與可迭代對(duì)象的長(zhǎng)度相等,值與權(quán)重按索引一一對(duì)應(yīng)。傳入的值可以是任何數(shù)字,只要能對(duì)比出不同值之間的權(quán)重大小就可以,系統(tǒng)會(huì)按權(quán)重大小來(lái)計(jì)算返回每個(gè)值的可能性,如上面的例子中只會(huì)返回“python”中的p和t,因?yàn)槠渌址臋?quán)重為0。

cum_weights是每一個(gè)值對(duì)應(yīng)的累計(jì)權(quán)重列表,默認(rèn)是None,所有元素權(quán)重相等。傳入權(quán)重列表時(shí),列表長(zhǎng)度必須與可迭代對(duì)象的長(zhǎng)度相等。權(quán)重是累計(jì)的,每一個(gè)位置的累計(jì)權(quán)重是前面所有元素的權(quán)重之和加上當(dāng)前位置元素的權(quán)重,也就是說(shuō)這個(gè)列表后面的值不可能小于前面的值。系統(tǒng)會(huì)根據(jù)累計(jì)權(quán)重值計(jì)算出每個(gè)元素的權(quán)重,然后計(jì)算返回每個(gè)值的可能性,如上面的例子中只會(huì)返回“python”中的y和h,因?yàn)槠渌址臋?quán)重是0。

注意:weights和cum_weights不能同時(shí)有值,即使計(jì)算結(jié)果一樣。

k值是從可迭代對(duì)象中獲取值的次數(shù),每次只取其中的一個(gè),重復(fù)k次,所以,理論上,有可能k次都取到同一個(gè)元素。

五、從字符串、列表、元組中隨機(jī)獲取一個(gè)或多個(gè)值

sample_list = [i for i in range(1, 6)]
print("sample_list: ", sample_list)
print(random.sample(sample_list, 1))
sample_tuple = (10, 20, 30, 40, 50)
print(random.sample(sample_tuple, 2))
sample_str = 'python'
print(random.sample(sample_str, 3))

運(yùn)行結(jié)果:

sample_list:  [1, 2, 3, 4, 5]
[1]
[10, 40]
['p', 'h', 'o']

sample(population, k)從可迭代對(duì)象中隨機(jī)返回k個(gè)元素,返回一個(gè)列表。

k表示返回元素的個(gè)數(shù),這個(gè)參數(shù)沒(méi)有默認(rèn)值,必須傳值。并且,是一次從可迭代對(duì)象中返回k個(gè)值,不是分k次,每個(gè)元素不會(huì)重復(fù)被取。此外,k值不可以大于可迭代對(duì)象的長(zhǎng)度,否則報(bào)錯(cuò),而上面choices中的k可以無(wú)限大,只要需要。使用場(chǎng)景不同,要注意區(qū)別。

六、隨機(jī)打亂順序

cards = ['%s-%s' % (a, b) for a in ['Spade', 'Heart', 'Diamond', 'Club'] for b in
   ([str(i) for i in range(3, 11)] + [j for j in 'JQKA2'])] + ['Black joker', 'Red joker']
print("Before: ", cards)
random.shuffle(cards)
print("After: ", cards)

運(yùn)行結(jié)果:

Before:  ['Spade-3', 'Spade-4', 'Spade-5', 'Spade-6', 'Spade-7', 'Spade-8', 'Spade-9', 'Spade-10', 'Spade-J', 'Spade-Q', 'Spade-K', 'Spade-A', 'Spade-2', 'Heart-3', 'Heart-4', 'Heart-5', 'Heart-6', 'Heart-7', 'Heart-8', 'Heart-9', 'Heart-10', 'Heart-J', 'Heart-Q', 'Heart-K', 'Heart-A', 'Heart-2', 'Diamond-3', 'Diamond-4', 'Diamond-5', 'Diamond-6', 'Diamond-7', 'Diamond-8', 'Diamond-9', 'Diamond-10', 'Diamond-J', 'Diamond-Q', 'Diamond-K', 'Diamond-A', 'Diamond-2', 'Club-3', 'Club-4', 'Club-5', 'Club-6', 'Club-7', 'Club-8', 'Club-9', 'Club-10', 'Club-J', 'Club-Q', 'Club-K', 'Club-A', 'Club-2', 'Black joker', 'Red joker']
After:  ['Spade-3', 'Diamond-J', 'Club-8', 'Club-7', 'Diamond-10', 'Spade-J', 'Heart-J', 'Diamond-A', 'Spade-K', 'Spade-10', 'Spade-8', 'Club-10', 'Club-J', 'Heart-9', 'Diamond-4', 'Diamond-5', 'Red joker', 'Spade-5', 'Club-4', 'Club-Q', 'Heart-7', 'Spade-Q', 'Club-A', 'Spade-6', 'Diamond-6', 'Black joker', 'Spade-7', 'Heart-Q', 'Club-9', 'Club-3', 'Heart-K', 'Diamond-Q', 'Diamond-K', 'Spade-2', 'Heart-5', 'Heart-A', 'Heart-4', 'Heart-3', 'Diamond-7', 'Club-K', 'Diamond-9', 'Spade-4', 'Heart-2', 'Spade-A', 'Club-6', 'Club-2', 'Heart-8', 'Diamond-2', 'Heart-10', 'Heart-6', 'Club-5', 'Spade-9', 'Diamond-8', 'Diamond-3']

shuffle()將可迭代對(duì)象的順序隨機(jī)打亂,上面例子中我們模擬了一副撲克牌,然后用shuffle()完成“洗牌”。

注意:shuffle()沒(méi)有返回值,是直接對(duì)可迭代對(duì)象進(jìn)行修改。

random除了上面的方法外,還有一些按數(shù)學(xué)分布隨機(jī)生成數(shù)據(jù)的方法,如正太分布,指數(shù)分布等,這里就不繼續(xù)舉例了,其實(shí)random源碼也不是很多,里面的方法數(shù)量是人工可數(shù)的,需要的話您可以在Pycharm中按住Ctrl點(diǎn)進(jìn)去看看。

總結(jié)

到此這篇關(guān)于Python中random模塊常用方法的使用教程的文章就介紹到這了,更多相關(guān)Python random模塊常用方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter notebook tensorflow打印device信息實(shí)例

    jupyter notebook tensorflow打印device信息實(shí)例

    這篇文章主要介紹了jupyter notebook tensorflow打印device信息實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python處理unicode字符的方法詳解

    Python處理unicode字符的方法詳解

    這篇文章主要介紹了Python處理unicode字符的方法詳解,unicodedata中定義了所有Unicode字符的字符屬性,主要包含兩個(gè)功能,其一是根據(jù)名字查找字符;其二是給定字符查找其對(duì)應(yīng)的信息,需要的朋友可以參考下
    2023-08-08
  • 模型訓(xùn)練時(shí)GPU利用率太低的原因及解決

    模型訓(xùn)練時(shí)GPU利用率太低的原因及解決

    這篇文章主要介紹了模型訓(xùn)練時(shí)GPU利用率太低的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python實(shí)現(xiàn)三次樣條插值

    python實(shí)現(xiàn)三次樣條插值

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)三次樣條插值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python使用sklearn實(shí)現(xiàn)的各種回歸算法示例

    Python使用sklearn實(shí)現(xiàn)的各種回歸算法示例

    這篇文章主要介紹了Python使用sklearn實(shí)現(xiàn)的各種回歸算法,結(jié)合實(shí)例形式分析了Python使用sklearn庫(kù)實(shí)現(xiàn)的決策樹(shù)回歸、線性回歸、SVM回歸、KNN回歸、隨機(jī)森林回歸等各種回歸算法,需要的朋友可以參考下
    2019-07-07
  • Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 關(guān)于Python中浮點(diǎn)數(shù)精度處理的技巧總結(jié)

    關(guān)于Python中浮點(diǎn)數(shù)精度處理的技巧總結(jié)

    雙精度浮點(diǎn)數(shù)(double)是計(jì)算機(jī)使用的一種數(shù)據(jù)類型,使用 64 位(8字節(jié)) 來(lái)存儲(chǔ)一個(gè)浮點(diǎn)數(shù)。下面這篇文章主要給大家總結(jié)介紹了關(guān)于Python中浮點(diǎn)數(shù)精度處理的技巧,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-08-08
  • Pytorch 使用tensor特定條件判斷索引

    Pytorch 使用tensor特定條件判斷索引

    這篇文章主要介紹了Pytorch 使用tensor特定條件判斷索引的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟

    MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟

    一般MAC上使用的是zsh的shell工具,需要修改zshrc文件來(lái)使環(huán)境變量永久生效(若不修改該文件,在命令行中輸入相應(yīng)的命令即可,本文給大家介紹MAC下Anaconda+Pyspark安裝配置詳細(xì)步驟,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Python使用內(nèi)置json模塊解析json格式數(shù)據(jù)的方法

    Python使用內(nèi)置json模塊解析json格式數(shù)據(jù)的方法

    這篇文章主要介紹了Python使用內(nèi)置json模塊解析json格式數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Python使用內(nèi)置的json模塊實(shí)現(xiàn)json格式數(shù)據(jù)的解析、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07

最新評(píng)論