首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >产生100种随机股票价格

产生100种随机股票价格
EN

Stack Overflow用户
提问于 2022-01-25 11:20:37
回答 4查看 503关注 0票数 1

我想通过产生100个随机4字母的公司名称和相应的随机股票价格来构造一个包含100个随机产生的股票价格的列表。

到目前为止,我已经编写了以下代码,提供了一个随机的4个字母的公司名称:

代码语言:javascript
运行
复制
import string
import random

def stock_generator():
    return ''.join(random.choices(string.ascii_uppercase, k=4))

stock_name_generator()

# OUTPUT
'FIQG'

但是,我想产生100个这样的随机股票价格。在创建列表(即使用某种种子)的同时,也可以做到这一点吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-01-25 11:27:46

代码语言:javascript
运行
复制
import string
import random


random.seed(0)


def stock_generator(n=100):
    return [(''.join(random.choices(string.ascii_uppercase, k=4)), random.random()) for _ in range(n)]


stocks = stock_generator()

print(stocks)

使用这个生成器表达式,您可以生成任意数量的随机股票。stock_generator()返回一个随机4个字母名称的元组列表,以及一个0到1之间的随机数。我认为一个真实的价格看起来会有所不同,但这就是你开始的方式。

random.seed()允许您复制随机生成。

编辑:额外要求的股票平均价格

代码语言:javascript
运行
复制
average_price = sum(stock[1] for stock in stocks) / len(stocks)

stocks[i][1]可用于访问名称/价格元组中的价格。

票数 1
EN

Stack Overflow用户

发布于 2022-01-25 11:38:17

我认为这种方法适用于您的任务.

代码语言:javascript
运行
复制
import string
import random

random.seed(0)

def stock_generator():
    return (''.join(random.choices(string.ascii_uppercase, k=4)), random.random())

parse_result =[]
n=100
for i in range(0,n):
    parse_result.append(stock_generator())

print(parse_result)
票数 2
EN

Stack Overflow用户

发布于 2022-01-25 11:53:43

您可以通过更新n之前的seed of random来生成一致的shuffle随机样本。下面是如何生成这些名称列表的示例(10个示例):

代码语言:javascript
运行
复制
import random, copy

sorted_list = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
i = 0 #counter
n = 10 # number of samples
l = 4 # length of samples

myset = set()
while i < n:
    shuffled_list = copy.deepcopy(sorted_list)
    random.seed(i)
    random.shuffle(shuffled_list)
    name = tuple(shuffled_list[:l])
    if name not in myset:
        myset.add(name)
        i+=1
print(sorted([''.join(list(x)) for x in myset]))
# ['CKEM', 'DURP', 'GQXO', 'JFWI', 'JNRX', 'MNSV', 'OAXS', 'TIFX', 'VLZS', 'XYLK']

然后,您可以随机生成n数量的价格,并创建一个list of tuple,它将每个名称绑定到一个价格:

代码语言:javascript
运行
复制
names = sorted([''.join(list(x)) for x in myset])
int_list = random.sample(range(1, 100), n)
prices = [x/10 for x in int_list]

names_and_prices = []
for name, price in zip(names,prices):
    names_and_prices.append((name,price))

# [('CKEM', 1.5), ('DURP', 1.7), ('GQXO', 6.5), ('JFWI', 7.6), ('JNRX', 0.9), ('MNSV', 8.9), ('OAXS', 5.0), ('TIFX', 9.6), ('VLZS', 1.4), ('XYLK', 3.8)]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70847749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档