python使用Random隨機生成列表的方法實例
引言:
閑來想到冒泡排序中的列表數(shù)據(jù)的排序,就想試試用隨機數(shù)生成一個列表來排序試試,于是做了一下實驗,本人實在是屬于入門階段,研究了一下終究還是完成了
1.在python中用random生成一個列表。
(0,1000)指列表中的數(shù)取值范圍0~1000之間,list列表數(shù)的lenth=10。
import random list=[random.randint(0,1000)for i in range(10)] print(list)
輸出結(jié)果如圖:
但是這種方法取值是可以重復的,
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#導入隨機數(shù)的包 list=random.sample([i for i in range(0,10)],10)#確定隨機取值的范圍和列表l的長度 print(list) #獲取列表的長度 n=len(list) #冒泡排序 #外循環(huán)每次循環(huán)就會兩兩比較選出最大的數(shù)放在右邊,所以是實際比較的個數(shù)是n-1(比如1,2,3)三個數(shù)比較只會比較2次,外循環(huán)控制循環(huán)多少趟 for x in range(0,n-1): # 內(nèi)循環(huán)控制每趟循環(huán)的次數(shù),每趟循環(huán)就會兩兩比較選出最大的數(shù)放在右邊,選出的數(shù)(x)不計入次數(shù),且每次比較都會(n-1次),所以是長度n-x-1 for y in range(0,n-1-x): #如果左邊的數(shù)大于右邊的數(shù)就會交換位置,用到賦值交換 if list[y]>list[y+1]: be=list[y] list[y]=list[y+1] list[y+1]=be print(list)
輸出結(jié)果:
下面我換換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)
輸出結(jié)果:
降序的寫法
import random#導入隨機數(shù)的包 list=random.sample([i for i in range(0,10)],10)#確定隨機取值的范圍和列表l的長度 print(list) #獲取列表的長度 n=len(list) #冒泡排序 #外循環(huán)每次循環(huán)就會兩兩比較選出最大的數(shù)放在右邊,所以是實際比較的個數(shù)是n-1(比如1,2,3)三個數(shù)比較只會比較2次 for x in range(0,n-1): # 內(nèi)循環(huán)控制每趟循環(huán)的次數(shù),每趟循環(huán)就會兩兩比較選出最大的數(shù)放在右邊,選出的數(shù)(x)不計入次數(shù),且每次比較都會(n-1次),所以是長度n-x-1 for y in range(0,n-1-x): #如果左邊的數(shù)大于右邊的數(shù)就會交換位置,用到賦值交換 if list[y]<list[y+1]: be=list[y] list[y]=list[y+1] list[y+1]=be print(list)
輸出結(jié)果:
附:一行代碼實現(xiàn)生成一個隨機列表
主要用隨機數(shù)模塊和推導式:
import random exit([random.randint(1,100) for i in range(10) ])
事實上,exit是拋出異常然后退出,后面無法對列表進行操作,正常情況我們還是這樣寫,這樣打印出來的還是會出現(xiàn)重復的數(shù):
import random print([random.randint(1,100) for i in range(10) ])
但是python太強大了,有專門的函數(shù)生成這種列表,還不帶重復的:
import random print(random.sample(range(1,100),10))
總結(jié)
到此這篇關于python使用Random隨機生成列表的文章就介紹到這了,更多相關python Random隨機生成列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在Python中使用cookielib和urllib2配合PyQuery抓取網(wǎng)頁信息
這篇文章主要介紹了在Python中使用cookielib和rllib2配合PyQuery抓取網(wǎng)頁信息的教程,主要是利用PyQuery解析HTML來實現(xiàn),需要的朋友可以參考下2015-04-04Python中多進程處理的Process和Pool的用法詳解
在Python編程中,多進程是一種強大的并行處理技術,Python提供了兩種主要的多進程處理方式:Process和Pool,本文將詳細介紹這兩種方式的使用,希望對大家有所幫助2024-02-02python數(shù)據(jù)分析之如何刪除value=0的行
這篇文章主要給大家介紹了關于python數(shù)據(jù)分析之如何刪除value=0的行的相關資料,文中通過實例代碼以及圖文介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友可以參考下2022-12-12python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實例
今天小編就為大家分享一篇python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06