如何从一个随机对获得dict?我正在制作一个游戏,您需要猜测一个国家的首都,我需要随机出现问题.
的dict模样{'VENEZUELA':'CARACAS'}
我怎样才能做到这一点?
我正在尝试编写一种算法,该算法可以随机地从序列中选择N个不同的项目,而不需要事先知道序列的大小,并且在不止一次迭代序列的情况下进行迭代是很昂贵的.例如,序列的元素可能是一个巨大文件的行.
我在N = 1时找到了一个解决方案(也就是说,当试图从一个巨大的序列中随机选择一个元素时):
import random
items = range(1, 10) # Imagine this is a huge sequence of unknown length
count = 1
selected = None
for item in items:
if random.random() * count < 1:
selected = item
count += 1
Run Code Online (Sandbox Code Playgroud)
但是如何才能为其他N值(比如N = 3)实现同样的目的呢?
我正在阅读初学者的JavaScript书籍,其中包含一些代码,用于将编码器的输入(var answer)与从数组中随机选择的字符串(答案)进行比较.这是一个猜谜游戏.
我对随机选择字符串的方式感到困惑.代码似乎是将Math.random函数乘以answers数组及其length属性.检查周围,这似乎是从数组中随机选择的标准方法?你为什么要使用数学运算符*来乘以......一个基于数组长度的随机字符串?技术上长度不是只有3个字符串吗?我觉得它应该像index = answers.random一样简单.JS或其他语言中是否存在这种情况?
<script>
var guess = "red";
var answer = null;
var answers = [ "red",
"green",
"blue"];
var index = Math.floor(Math.random() * answers.length);
if (guess == answers[index]) {
answer = "Yes! I was thinking " + answers[index];
} else {
answer = "No. I was thinking " + answers[index];
}
alert(answer);
</script>
Run Code Online (Sandbox Code Playgroud) 假设我有这本词典:
dict = {'a': 100, 'b': 5, 'c': 150, 'd': 60};
Run Code Online (Sandbox Code Playgroud)
我得到了这个代码具有最大价值的密钥:
most_similar = max(dic.iteritems(), key=operator.itemgetter(1))[0]
Run Code Online (Sandbox Code Playgroud)
它返回 'c'
但我想从前3个最大值中选择一个随机密钥.根据这本词典,前三名是:
c
a
d
Run Code Online (Sandbox Code Playgroud)
它应该从中随机选择一个键.我怎样才能做到这一点?
可能重复:
如何使用Python从列表中随机选择项目?
我有两个数组pool_list_X,pool_list_Y.两者都有一个numpy数组作为列表中的元素.所以基本上
pool_list_x[0] = [1 2 3 4] # a multidimensional numpy array.
Run Code Online (Sandbox Code Playgroud)
并且pool_list_x的每个元素都在pool_list_y中具有对应的元素
which is to say, that pool_list_x[i] corresponds to pool_list_y[i]
Run Code Online (Sandbox Code Playgroud)
现在.如果我必须从list_x中随机选择10个元素(因此相应的元素为list_y).我该怎么做呢.我可以想到一种非常天真的方式......随机生成数字.和东西..但这不是很有效..什么是pythonic方式来做到这一点.谢谢
我在堆栈溢出上遇到了这个问题: 如何从 Python 中的列表中随机选择项目 ,他们提到它不适合加密/安全目的。
所以,我在官方文档中找到了这个页面:random - Generate pseudorandom numbers
它提到他们使用梅森扭曲器来生成随机数。
Mersenne twiner 不应该是一个相当不错的随机生成器(至少这是我在课堂上被告知的)?那么为什么不能将它用于安全目的呢?
为什么numpy.random.choice与random.choice的工作方式不同?当我这样做:
>>> random.choice([(1,2),(4,3)])
(1, 2)
Run Code Online (Sandbox Code Playgroud)
有用.
但是当我这样做时:
>>> np.random.choice([(1,2), (3,4)])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mtrand.pyx", line 1393, in mtrand.RandomState.choice
(numpy/random/mtrand/mtrand.c:15450)
ValueError: a must be 1-dimensional
Run Code Online (Sandbox Code Playgroud)
如何在numpy.random.choice()中实现与random.choice()相同的行为?
这个问题可以推广到随机创建一个大小为n的列表,其中包含预先指定的整数(假设均匀分布).希望它看起来如下:
也许语法看起来像
randList([list of integers], size)
Run Code Online (Sandbox Code Playgroud)
然后可以产生以下内容:
randList([1,-1], 7)
>>> [1,-1,1,-1,-1,-1,1] #(random)
Run Code Online (Sandbox Code Playgroud)
要么
randList([2,3,4], 10)
>>> [4,3,4,2,2,4,2,3,4,3] #(random)
Run Code Online (Sandbox Code Playgroud)
我对python有点新,我看到它始终返回低值和高值之间的一系列值,而不是特定值.谢谢
我有两个清单
a_list = ['a', 'b', 'c']
b_list = ['1', '2', '3']
Run Code Online (Sandbox Code Playgroud)
将列表值从b_list随机委托给新列表中的大元组的最佳方法是什么:
c_list = [('a','1'), ('b','3'), ('c','1')]
Run Code Online (Sandbox Code Playgroud)