簡體   English   中英

從列表列表中隨機選擇X個列表

[英]Randomly select X number of lists from a list of lists

我有以下內容:

pen = [1, 2, 3, 4]
pencil = [2,3,4,5]
paper = [3,4,5,6]
group_of_items = [pen, pencil, paper]

我想從這個列表列表中隨機選擇一定數量的列表,結果是這樣的:

[pencil, pen]

我從另一個問題中找到了以下內容(根據我的情況進行了修改)。

import random

pen = [1, 2, 3, 4]
pencil = [2,3,4,5]
paper = [3,4,5,6]

group_of_items = [pen, pencil, paper]

num_to_select = 2
list_of_random_items = random.sample(group_of_items, num_to_select)
print(list_of_random_items)

它給出了這樣的東西。

[[2, 3, 4, 5], [1, 2, 3, 4]]

所以,它很接近,但沒有雪茄。 我也找到了這個。

import numpy as np

pen = [1, 2, 3, 4]
pencil = [2,3,4,5]
paper = [3,4,5,6]
group_of_items = [pen, pencil, paper]
num_to_select = 2

random_list = np.random.choice(group_of_items, num_to_select, replace=False)

print(random_list)

但它不適用於列表列表(多維)。

我怎樣才能實現目標?

哦,我不想重復。

注意:我的編碼經驗相當有限。 我主要復制並粘貼我在網上找到的內容,只進行了一些小改動。

編輯 :以上只是一個快速拋出的測試。 我構建的是一個使用PythonAnywhere的Twitter推文機器人。 它的工作原理非常好,但我想為它添加一個更隨機的功能。

我在Google電子表格中列出了推文列表,我將其移至Python列表中,如下所示:

quotes = tweet_sheet.col_values(3)

我有幾個這樣的列表,我把它放在一個主列表中。 但是每次運行程序時我都不想從每個列表中發推文。

現在我使用這樣的東西。

sources = [tips,feed,quotes... etc...

我想從程序運行時使用的主列表列表中選擇x個列表。 (那措辭有點搞笑)

到目前為止,我從評論中猜測,我上面的內容會起作用。 稍微調整其余代碼,就是這樣。

這是一種使用字典的方法:

>>> pen = [1, 2, 3, 4]
>>> pencil = [2,3,4,5]
>>> paper = [3,4,5,6]
>>> item_dict = {'pen':pen, 'pencil':pencil, 'paper':paper}
>>> import random
>>> item_names = list(item_dict.keys())
>>> item_names
['pencil', 'pen', 'paper']
>>> sample = random.sample(item_names,2)
>>> sample
['pencil', 'pen']
>>> item_dict[sample[0]]
[2, 3, 4, 5]
>>> item_dict[sample[1]]
[1, 2, 3, 4]

所以現在你在字符串列表之間有一個關聯:

>>> "The first list sampled was {}. Here's the list {}".format(sample[0], item_dict[sample[0]])
"The first list sampled was pencil. Here's the list [2, 3, 4, 5]"
>>> 

暫無
暫無

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

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