Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在两个范围之间生成随机整数_Python_Python 2.7_Random - Fatal编程技术网

Python 在两个范围之间生成随机整数

Python 在两个范围之间生成随机整数,python,python-2.7,random,Python,Python 2.7,Random,我想得到一个介于(65,90)和(97122)之间的随机数。我可以使用 import random random.randint(65,95) 但是ˋrandint`取唯一的整数,那么我怎么做??有什么想法吗 提前感谢自己做吧 import random def my_rand(): numbers = list() numbers.append(random.randint(65,95)) numbers.append(random.randint(97,122)) ret

我想得到一个介于(65,90)和(97122)之间的随机数。我可以使用

import random
random.randint(65,95)
但是ˋrandint`取唯一的整数,那么我怎么做??有什么想法吗

提前感谢

自己做吧

import random

def my_rand():
  numbers = list()
  numbers.append(random.randint(65,95))
  numbers.append(random.randint(97,122))
  return numbers[random.randint(0,1)]
或者:

def random():
  arr1 = np.random.randint(65,90)
  arr2 = np.random.randint(97,122)
  out = np.stack((arr1,arr2))
  out = np.random.choice(out)
  return out

这是一种非常普遍的处理方法。您可以传递任意数量的范围(或其子集)。但它相当昂贵,特别是对于非常大的集合(如
范围(11000000)
)。不过,对于您的用例(可能还有附近的其他几个用例),这就足够了。

您可以生成两个范围,然后生成一个
random.choice([第一个范围rand,第二个范围rand])
您确定您不是真正想要
random.choice(string.ascii\u字母)
?@JonClements XY问题已解决:)John的意思是代码可能用于生成字母,ASCII代码可能没有那么有趣。@Kallz可能是你的问题:你想用这个数字做什么。因为Jon Clements comment是一个非常好的建议。如果范围大小不同,这可能不是我们想要的。而且代码有语法错误。@Jean-Françoisfare修复了,感谢您花时间投诉而不是修复它;)@阿尔夫assumption@Nicoretti不,不是假设。评论。您假设了想要的分布,并基于您的假设实现了一个函数(没有任何假设声明)。我评论说这可能不是PO想要的。如果没有来自PO的更多信息,关于概率的陈述不是一个假设,而是一个事实。你为什么要在这里构建所有范围
random.choice(random.choice(ranges))
在每次都不重建列表的情况下执行相同的操作…如果所有范围大小相同,则执行相同的操作(这是上面Q中的情况)。在一般情况下,这不一定是真的,
choice(choice([range(1100),range(200202)])
将比e更频繁地返回200和201路。G50或37。但是,当然,只构建一次列表,然后在使用此输入的所有调用中使用它将是一个很好的优化。好的观点-做得很好:)我感觉它会变慢,但是…:
heapq.nlargest(1,itertools.chain(ranges),key=lambda L:random.random())
:p只是为了让我的不严肃的建议更明显不严肃?
def random_of_ranges(*ranges):
  all_ranges = sum(ranges, [])
  return random.choice(all_ranges)

print(random_of_ranges(range(65, 90), range(97, 122)))