簡體   English   中英

從 python 中的字符串列表創建給定長度的隨機列表

[英]Create random list of given length from a list of strings in python

我有一個字符串列表:

lst = ["orange", "yellow", "green"]    

我想隨機重復給定長度的字符串值。

這是我的代碼:

import itertools
lst = ["orange", "yellow", "green"]
list(itertools.chain.from_iterable(itertools.repeat(x, 2) for x in lst))

這個實現重復但不是隨機的,而且它也同樣重復,而它也應該是隨機的,具有給定的長度。

您可以使用列表推導:

import random
lst = ["orange", "yellow", "green"]
[lst[random.randrange(len(lst))] for i in range(100)]

解釋:

  • random.randrange(n)返回一個 integer 在0n-1的范圍內。
  • 列表推導從lst 100 次中重復添加一個隨機元素。
  • 100更改為您希望獲得的任何數量的元素。

一種方法是使用random.sample()

返回從種群序列或集合中選擇的唯一元素的長度列表。

每次調用時只需將k設置為 1。 這為您提供了一個長度為 1 的列表,從源列表中隨機選擇。

要生成一個大的隨機列表,請在列表理解中重復調用random.sample() ,例如 150 次。 (當然,您還必須從random.sample()索引結果列表,以便僅檢索值而不是長度為 1 的列表)。

例如:

import random
lst = ["orange", "yellow", "green"]
print([random.sample(lst, k=1)[0] for i in range(150)])
# Output
# ['green', 'orange', 'green', 'yellow', 'green', ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM