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

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

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

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

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

對list進行洗牌,亂序排序,random.shuffle(list),注意原來的list會被改變

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

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

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

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

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

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

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

相關(guān)文章

  • python獲取指定目錄下所有文件名列表的方法

    python獲取指定目錄下所有文件名列表的方法

    這篇文章主要介紹了python獲取指定目錄下所有文件名列表的方法,涉及Python目錄及文件操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python解決pip install時出現(xiàn)的Could not fetch URL問題

    Python解決pip install時出現(xiàn)的Could not fetch URL問題

    這篇文章主要介紹了Python解決pip install時出現(xiàn)的Could not fetch URL問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 一文帶你搞懂Python中的數(shù)據(jù)容器

    一文帶你搞懂Python中的數(shù)據(jù)容器

    這篇文章主要為大家詳細介紹了Python中數(shù)據(jù)容器的相關(guān)資料,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,感興趣的可以了解一下
    2022-11-11
  • 四行Python3代碼實現(xiàn)圖片添加美顏效果

    四行Python3代碼實現(xiàn)圖片添加美顏效果

    這篇文章主要為大家介紹了如何利用Python語言實現(xiàn)給圖片添加美顏效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-04-04
  • 利用Python如何生成hash值示例詳解

    利用Python如何生成hash值示例詳解

    這篇文章主要給大家介紹了關(guān)于利用Python如何生成hash值的相關(guān)資料,并且給大家分享了利用Python一句話校驗軟件哈希值的方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-12-12
  • python實現(xiàn)同一局域網(wǎng)下傳輸圖片

    python實現(xiàn)同一局域網(wǎng)下傳輸圖片

    這篇文章主要為大家詳細介紹了python實現(xiàn)同一局域網(wǎng)下傳輸圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Pytorch神經(jīng)網(wǎng)絡(luò)參數(shù)管理方法詳細講解

    Pytorch神經(jīng)網(wǎng)絡(luò)參數(shù)管理方法詳細講解

    這篇文章主要介紹了Pytorch神經(jīng)網(wǎng)絡(luò)參數(shù)管理方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-05-05
  • python上下文管理器協(xié)議的實現(xiàn)

    python上下文管理器協(xié)議的實現(xiàn)

    這篇文章主要介紹了python上下文管理器協(xié)議的實現(xiàn),在python中所有實現(xiàn)了上下文管理器協(xié)議的對象 都可以用使用with操作,with啟動了對象的上下文管理器
    2022-06-06
  • python中的try except與R語言中的tryCatch異常解決

    python中的try except與R語言中的tryCatch異常解決

    這篇文章主要為大家介紹了python中的try except與R語言中的tryCatch異常解決的方式及分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • python無法引用另一個文件夾的py文件問題及解決

    python無法引用另一個文件夾的py文件問題及解決

    這篇文章主要介紹了python無法引用另一個文件夾的py文件問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論