事情發生背景:python
題目是:有10萬個隨機數,請寫一段代碼,找出前10個最小的。app
一開始我想的是直接用python語法糖(列表生成式)生成一個隨機的10萬個數字。dom
可是我發現以我目前的能力完成不了,所以我就用了一個列表和一個列表生成式作出了一個僞隨機數.blog
import random
import heapq
list1 = []
for a in range(20,2000000):
list1.append(a)
list2 = []
for i in range(10000):
list2.append(random.choice(list1))
res = heapq.nsmallest(10, list2)
print(res)
事情通過:
問題這樣也就解決了(雖然是不完美的解決),可是我以爲不夠簡潔,基於PythonIC(該名詞上面有詳細介紹)的嚴謹,就想到直接列表生成式作出僞隨機數。
因而就有了這樣(自認爲的)怪誕。。。
import random
list1 = []
list2 = []
#雙層僞隨機數形成僞最終的隨機數
list1 = [list1.append(random.randint(1,2000000))for i in range(1,20000)]
print(list1)
list2 = [list2.append(random.choice(list1))for i in range(20)]
print(list2)
爲何會是None類型呢???的目前我沒法理解的事情,記錄下來,等待之後本身有足夠的知識背景再來解釋,你們有什麼想法也能夠討論下。import