![](/img/trans.png)
[英]Python: List comprehension to create a list strings of n-size maximum from list of strings of random size
[英]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 在0
到n-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.