[英]How to create a random list of lists
如何創建隨機列表。 random.sample(range(80), 10)
生成一個包含 10 個項目的列表,最多為 80 個。
示例輸出:
[1,4,6,44,78,45,32,56,72,23]
但是您能否添加更多數據使其成為列表列表?
期望輸出:
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
將random.sample
的結果封裝在一個列表中並應用*
運算符:
new_list = [random.sample(range(80), 10)]*6
您可以使用itertools.repeat
>>> from itertools import repeat
>>> list(repeat(random.sample(range(80),10),6))
itertools
食譜背后的想法是懶惰地消費它。 所以最好像這樣使用它:
>>> items = repeat(random.sample(range(80),10),6)
>>> for item in items:
#consume item here with your program logic
也許給出更好解釋的解決方案是考慮您需要生成什么樣的列表。 列表可以表示大量數據,例如表中的項目、市場列表和許多其他良好的表示。
遵循一些與代碼相關的生產質量模式,您可以使每個項目由一個因素生成,並以正確的可移植方式生成堆棧堆上的列表或數據集合。
根據程序輸入獲取參數:
from sys import argv
首先利用可以從馬身上進行射擊:
from collections import UserList
用於計算種子因子和預測生成的 ceil 函數是機器輪而不是像序列一樣的人:
from math import ceil
盒子上提供的示例函數生成:
from random import sample
種子函數用於限制隨機生成或增加,而沒有實現提供的默認值:
from random import seed
可以使用以下函數更好地使用迭代:
from itertools import repeat
現在,您可以使用以下行為附加整整和更正:
seed(ceil(1024*8.6))
小代的第一個匿名 lambda 函數:
sample_gen_fn = lambda l=80, n=10, s=0: sample(range(s,l),n)
另一個為列表工作的一個很好的過程:
user_sample_gen_fn = lambda l=80, n=10, s=0: UserList(sample_gen_fn(l,n,s))
在一個貓可以預測或閱讀列表的世界中,這不會對動物的大腦造成損害,例如。 在另一個運行很多有損壞,想像你的處理器的貓......這可以延長計算機的使用壽命。
所有這些都可以在描述中沒有解釋的大上下文中使用,但您需要考慮您的實現。
對用於迭代的本機函數的模式進行一點觀察,可以在不調用具有可尋址內容的變量的情況下進行參數特定的分配,這避免了僅用於調試的上下文的使用。
def reproduce_pile_fn(ll=6):
return repeat(lambda: user_sample_gen_fn(),ll)
def stack_pile_cmd(ll=6, l=80, n=10, s=0):
for seq in reproduce_pile_fn(ll):
print(seq())
我認為這可以幫助與其他答案平等,因為需要對小型或大型實現進行很好的解釋。
之后,您可以在特定條件下調用該函數。
if __name__ == '__main__':
# Usage with arguments comming from the program
# executed as an script.
#
# args = argv[1:]
# stack_pile_cmd(args[0])
#
# Common usage
stack_pile_cmd()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.