最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python生成不重復(fù)隨機(jī)數(shù)和對(duì)list亂序的解決方法

 更新時(shí)間:2018年04月09日 10:01:35   作者:落落圖靈  
下面小編就為大家分享一篇python生成不重復(fù)隨機(jī)數(shù)和對(duì)list亂序的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

andom.sample(list, n)即是從list中隨機(jī)選取n個(gè)不同的元素

# -*- coding: utf-8 -*- 
import random 
# 從一個(gè)list中隨機(jī)挑選5個(gè) 
list = [12, 23, 13, 14, 78, 234, 123, 12345] 
randomlist = random.sample(list, 5) 
print randomlist 
 
# 在range(10)中隨機(jī)生成5個(gè)不重復(fù)的數(shù),可以作為隨機(jī)下標(biāo)集合,然后到list中取數(shù) 
len = list.__len__() 
indexList = range(len) 
randomIndex = random.sample(indexList, 5) 
for i in randomIndex: 
 print "下標(biāo)為%d" % i 
 print list[i] 

對(duì)list進(jìn)行洗牌,亂序排序,random.shuffle(list),注意原來(lái)的list會(huì)被改變

# -*- coding: utf-8 -*- 
import random 
# 對(duì)list洗牌,在原list上做改變 
list = range(10) 
print list 
random.shuffle(list) 
print "隨機(jī)排序列表 : ", list 

關(guān)于生成隨機(jī)的不重復(fù)數(shù),我被面試過(guò)兩次,有一次的應(yīng)用場(chǎng)景是抽獎(jiǎng)。

我當(dāng)時(shí)提出的解決方案是:將生成的隨機(jī)數(shù)(數(shù)組的隨機(jī)下標(biāo))放在一個(gè)數(shù)組中,每次對(duì)新生成的隨機(jī)數(shù)首先判斷是否已經(jīng)存在,如果不存在就加入這個(gè)數(shù)組,如果存在就重新生成隨機(jī)數(shù),直到這個(gè)數(shù)組中的元素個(gè)數(shù)到達(dá)一個(gè)特定值,然后拿著這個(gè)隨機(jī)下標(biāo)數(shù)組到原數(shù)組中去取元素。面試官問(wèn)我時(shí)間復(fù)雜度問(wèn)我是多少,我說(shuō)O(n^2),面試官問(wèn)我有沒(méi)有改進(jìn)方案,我想了一會(huì)沒(méi)想出來(lái)。

回到宿舍后舍友說(shuō),你可以每次對(duì)選中的元素和最后元素交換以下,下一次生成隨機(jī)數(shù)的時(shí)候就在前n-1個(gè)元素中生成,這樣每次只要交換一次元素,就不用去那個(gè)數(shù)組中判斷當(dāng)前下標(biāo)是否已經(jīng)被生成過(guò)一次,時(shí)間復(fù)雜度變成O(n),不由佩服。

Java中提供了list.contains(ele)函數(shù),可以直接判斷指定容器中是否存在某個(gè)元素,這樣就不用寫(xiě)二重循環(huán)了,但是時(shí)間復(fù)雜度仍然是O(n^2)

不過(guò)今天看了一下python中的sample函數(shù)(隨機(jī)選取種子點(diǎn))直接就能達(dá)到我要的結(jié)果,下次再寫(xiě)抽獎(jiǎng)函數(shù)一行代碼就搞定了。

以上這篇python生成不重復(fù)隨機(jī)數(shù)和對(duì)list亂序的解決方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 批量驗(yàn)證和添加手機(jī)號(hào)碼為企業(yè)微信聯(lián)系人

    Python 批量驗(yàn)證和添加手機(jī)號(hào)碼為企業(yè)微信聯(lián)系人

    你是否也有過(guò)需要添加很多微信好友的時(shí)候,一個(gè)個(gè)輸入添加太麻煩了,本篇文章手把手教你用Python替我們完成這繁瑣的操作,大家可以在過(guò)程中查缺補(bǔ)漏,看看自己掌握程度怎么樣
    2021-10-10
  • 使用Python分割并高效處理PDF大文件詳解

    使用Python分割并高效處理PDF大文件詳解

    在處理大型PDF文件時(shí),將它們分解成更小、更易于管理的塊通常是有益的,本文將為大家介紹一下如何使用Python和為Unstructured.io庫(kù)實(shí)現(xiàn)分割PDF吧
    2025-03-03
  • python讀取并定位excel數(shù)據(jù)坐標(biāo)系詳解

    python讀取并定位excel數(shù)據(jù)坐標(biāo)系詳解

    這篇文章主要介紹了python讀取并定位excel數(shù)據(jù)坐標(biāo)系詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • 利用Python產(chǎn)生加密表和解密表的實(shí)現(xiàn)方法

    利用Python產(chǎn)生加密表和解密表的實(shí)現(xiàn)方法

    這篇文章主要介紹了利用Python產(chǎn)生加密表和解密表的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python中字符串?dāng)?shù)組逆序排列方法總結(jié)

    python中字符串?dāng)?shù)組逆序排列方法總結(jié)

    在本篇文章里小編給大家整理了關(guān)于python中字符串?dāng)?shù)組如何逆序排列的相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • pandas選擇或添加列生成新的DataFrame操作示例

    pandas選擇或添加列生成新的DataFrame操作示例

    這篇文章主要為大家介紹了pandas選擇或添加列生成新的DataFrame實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python中json.dumps和json.dump區(qū)別

    python中json.dumps和json.dump區(qū)別

    json.dumps將Python對(duì)象序列化為JSON字符串,json.dump直接將Python對(duì)象序列化寫(xiě)入文件,本文就來(lái)介紹一下兩個(gè)的使用及區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • keras的siamese(孿生網(wǎng)絡(luò))實(shí)現(xiàn)案例

    keras的siamese(孿生網(wǎng)絡(luò))實(shí)現(xiàn)案例

    這篇文章主要介紹了keras的siamese(孿生網(wǎng)絡(luò))實(shí)現(xiàn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 分享10提高?Python?代碼的可讀性的技巧

    分享10提高?Python?代碼的可讀性的技巧

    這篇文章主要介紹了分享10提高?Python?代碼的可讀性的技巧,本文介紹20個(gè)常用的Python技巧來(lái)提高代碼的可讀性,并能幫助你節(jié)省大量時(shí)間,下面的技巧將在你的日常編碼練習(xí)中非常實(shí)用,需要的朋友可以參考一下
    2022-03-03
  • 解決pycharm每次新建項(xiàng)目都要重新安裝一些第三方庫(kù)的問(wèn)題

    解決pycharm每次新建項(xiàng)目都要重新安裝一些第三方庫(kù)的問(wèn)題

    今天小編就為大家分享一篇解決pycharm每次新建項(xiàng)目都要重新安裝一些第三方庫(kù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論

龙州县| 南乐县| 灌云县| 旬阳县| 宣城市| 德庆县| 封丘县| 阳春市| 夏邑县| 辽阳县| 右玉县| 曲周县| 平罗县| 德令哈市| 清苑县| 无为县| 尚志市| 景谷| 清水河县| 通河县| 子长县| 洪泽县| 海兴县| 革吉县| 漯河市| 彰化县| 炉霍县| 济源市| 论坛| 辽阳市| 蓬安县| 屏东县| 汾阳市| 贺州市| 阳城县| 永城市| 会理县| 扎赉特旗| 嵊州市| 万山特区| 浦东新区|