首頁 > 軟體

python使用Random隨機生成列表的方法範例

2022-04-19 10:01:11

引言:

閒來想到氣泡排序中的列表資料的排序,就想試試用亂數生成一個列表來排序試試,於是做了一下實驗,本人實在是屬於入門階段,研究了一下終究還是完成了

1.在python中用random生成一個列表。

(0,1000)指列表中的數取值範圍0~1000之間,list列表數的lenth=10。

import random
list=[random.randint(0,1000)for i in range(10)]
print(list)

輸出結果如圖:

但是這種方法取值是可以重複的,

import random
list=[random.randint(0,10)for i in range(10)]
print(list)

2.翻了一些資料找到了取值不重複的寫法

range(10)是取值範圍,後面的值是lenth長度

import random
list=random.sample([i for i in range(0,10)],10)
print(list)

輸出如下:

3.下面用氣泡排序來實驗一下效果

升序的寫法:

import random#匯入亂數的包
list=random.sample([i for i in range(0,10)],10)#確定隨機取值的範圍和列表l的長度
print(list)
#獲取列表的長度
n=len(list)
#氣泡排序
#外迴圈每次迴圈就會兩兩比較選出最大的數放在右邊,所以是實際比較的個數是n-1(比如1,2,3)三個數比較只會比較2次,外迴圈控制迴圈多少趟
for x in range(0,n-1):
    # 內迴圈控制每趟迴圈的次數,每趟迴圈就會兩兩比較選出最大的數放在右邊,選出的數(x)不計入次數,且每次比較都會(n-1次),所以是長度n-x-1
    for y in range(0,n-1-x):
        #如果左邊的數大於右邊的數就會交換位置,用到賦值交換
        if list[y]>list[y+1]:
            be=list[y]
            list[y]=list[y+1]
            list[y+1]=be
print(list)

輸出結果:

下面我換換print輸出的位置我們就可以看見比較的過程

import random
list=random.sample([i for i in range(0,10)],10)
print(list)

n=len(list)

for x in range(0,n-1):
    for y in range(0,n-1-x):
        if list[y]>list[y+1]:
            be=list[y]
            list[y]=list[y+1]
            list[y+1]=be
    print(list)

輸出結果:

降序的寫法

import random#匯入亂數的包
list=random.sample([i for i in range(0,10)],10)#確定隨機取值的範圍和列表l的長度
print(list)
#獲取列表的長度
n=len(list)
#氣泡排序
#外迴圈每次迴圈就會兩兩比較選出最大的數放在右邊,所以是實際比較的個數是n-1(比如1,2,3)三個數比較只會比較2次
for x in range(0,n-1):
    # 內迴圈控制每趟迴圈的次數,每趟迴圈就會兩兩比較選出最大的數放在右邊,選出的數(x)不計入次數,且每次比較都會(n-1次),所以是長度n-x-1
    for y in range(0,n-1-x):
        #如果左邊的數大於右邊的數就會交換位置,用到賦值交換
        if list[y]<list[y+1]:
            be=list[y]
            list[y]=list[y+1]
            list[y+1]=be
print(list)

輸出結果:

附:一行程式碼實現生成一個隨機列表

主要用亂數模組和推導式:

import random
exit([random.randint(1,100) for i in range(10) ])

事實上,exit是丟擲異常然後退出,後面無法對列表進行操作,正常情況我們還是這樣寫,這樣列印出來的還是會出現重複的數:

 import random
 print([random.randint(1,100) for i in range(10) ])

但是python太強大了,有專門的函數生成這種列表,還不帶重複的:

import random
print(random.sample(range(1,100),10))

總結

到此這篇關於python使用Random隨機生成列表的文章就介紹到這了,更多相關python Random隨機生成列表內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com