簡體   English   中英

如何從列表中的python值中隨機采樣?

[英]How to randomly sample from python values in a list?

我有一個股票代碼列表作為值,它們的部門作為 python defauldict鍵。 我想從每個值中隨機抽取一兩個並將它們放在自己的列表中,然后做一些事情,然后再次隨機采樣並這樣做 50 或 100 次。

這可能嗎?

這是字典的示例。

sector_dict = defaultdict(list,
                          {'Technology': ['AAPL', 'ADBE', 'AMD', 'AMAT', 'FSLR', 'GPRO', 'IBM', 'MSFT', 'MU',
                                          'QCOM', 'TXN', 'XLNX', 'CRM'],
                           'Healthcare': ['ABT', 'GILD', 'MDT', 'BMY'],
                           'Consumer Cyclical': ['AMZN', 'ANF', 'BABA', 'BBY', 'BZUN', 'CMG', 'EBAY', 'GM', 'HD',
                                                 'JD', 'LULU', 'MCD', 'NKE', 'TSLA', 'UA', 'GME'],
                           'Energy': ['APA', 'HAL', 'PBR', 'SLB', 'CVX'],
                           'Industrials': ['BA', 'CAT', 'DE', 'FDX', 'HON', 'UAL'],
                           'Communication Services': ['BIDU', 'FB', 'GOOG', 'NFLX', 'SNAP', 'TWTR', 'ZM', 'CMCSA'],
                           'Real Estate': ['BRX', 'SPG'],
                           'Consumer Defensive': ['COST'],
                           'Basic Materials': ['FCX', 'NEM', 'CLF'],
                           'Financial Services': ['GS', 'HIG', 'LYG', 'MA', 'V', 'C', 'JPM', 'MS']})

替換可以是True 唯一的限制是應該從每個鍵中選擇至少一個股票代碼。 我該怎么做呢?

當我嘗試時,當我試圖獲得的只是一個值列表(代碼)時,我會得到一個列表列表。

這是我的嘗試:

import random
random_port = []
for key, val in sector_dict.items():
    random_port.append(random.sample(val, 1))
random_port

嘗試:

random_port = []
for value in sector_dict.values():
    random_port += random.sample(value, min(len(value), 2))

下面我稍微修改了你的代碼,從每個類別中選擇一兩只股票:

import random

random_list = []

for key, val in sector_dict.items():
    random_list.extend(random.sample(val, min(len(val), random.randint(1,2))))

print(random_list)

暫無
暫無

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

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