python使用Random隨機(jī)生成列表的方法實例
引言:
閑來想到冒泡排序中的列表數(shù)據(jù)的排序,就想試試用隨機(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é)果如圖:

但是這種方法取值是可以重復(fù)的,
import random list=[random.randint(0,10)for i in range(10)] print(list)

2.翻了一些資料找到了取值不重復(fù)的寫法
range(10)是取值范圍,后面的值是lenth長度
import random list=random.sample([i for i in range(0,10)],10) print(list)
輸出如下:

3.下面用冒泡排序來實驗一下效果
升序的寫法:
import random#導(dǎo)入隨機(jī)數(shù)的包
list=random.sample([i for i in range(0,10)],10)#確定隨機(jī)取值的范圍和列表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#導(dǎo)入隨機(jī)數(shù)的包
list=random.sample([i for i in range(0,10)],10)#確定隨機(jī)取值的范圍和列表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)生成一個隨機(jī)列表
主要用隨機(jī)數(shù)模塊和推導(dǎo)式:
import random exit([random.randint(1,100) for i in range(10) ])
事實上,exit是拋出異常然后退出,后面無法對列表進(jìn)行操作,正常情況我們還是這樣寫,這樣打印出來的還是會出現(xiàn)重復(fù)的數(shù):
import random print([random.randint(1,100) for i in range(10) ])
但是python太強(qiáng)大了,有專門的函數(shù)生成這種列表,還不帶重復(fù)的:
import random print(random.sample(range(1,100),10))
總結(jié)
到此這篇關(guān)于python使用Random隨機(jī)生成列表的文章就介紹到這了,更多相關(guān)python Random隨機(jī)生成列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python3 requests中使用ip代理池隨機(jī)生成ip的實例
- python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個數(shù)實例
- Python隨機(jī)生成一個6位的驗證碼代碼分享
- 利用python3隨機(jī)生成中文字符的實現(xiàn)方法
- Python隨機(jī)生成身份證號碼及校驗功能
- Python隨機(jī)生成手機(jī)號、數(shù)字的方法詳解
- python 隨機(jī)生成10位數(shù)密碼的實現(xiàn)代碼
- Python實現(xiàn)隨機(jī)生成有效手機(jī)號碼及身份證功能示例
- python隨機(jī)生成大小寫字母數(shù)字混合密碼(僅20行代碼)
- Python輕松實現(xiàn)2位小數(shù)隨機(jī)生成
相關(guān)文章
在Python中使用cookielib和urllib2配合PyQuery抓取網(wǎng)頁信息
這篇文章主要介紹了在Python中使用cookielib和rllib2配合PyQuery抓取網(wǎng)頁信息的教程,主要是利用PyQuery解析HTML來實現(xiàn),需要的朋友可以參考下2015-04-04
Python中多進(jìn)程處理的Process和Pool的用法詳解
在Python編程中,多進(jìn)程是一種強(qiáng)大的并行處理技術(shù),Python提供了兩種主要的多進(jìn)程處理方式:Process和Pool,本文將詳細(xì)介紹這兩種方式的使用,希望對大家有所幫助2024-02-02
python數(shù)據(jù)分析之如何刪除value=0的行
這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析之如何刪除value=0的行的相關(guān)資料,文中通過實例代碼以及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-12-12
python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實例
今天小編就為大家分享一篇python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06

