在python中获取一个新的随机数

问题描述

也许这是一个菜鸟问题,但我怎样才能在每次重复时得到一个新的随机数?

realport = random.randint(portstarts,portends)

liste = list(itertools.repeat('{}:{}:{}:{}'.format(hostname,realport,username,password),amount))

解决方法

正如 ShadowRanger 评论的那样,itertools.repeat 可能不是您想要的。

list comprehension”可能是表达您想要的更好的方式:

def getport():
    return random.randint(portstarts,portends)

liste = [
  '{}:{}:{}:{}'.format(hostname,getport(),username,password)
  for _ in range(amount)
]

如果您希望所有端口都是唯一的,那么您可以改用 random.sample 来“采样而不替换”:

liste = [
  '{}:{}:{}:{}'.format(hostname,port,password)
  for port in random.sample(range(portstarts,portends+1),amount)
]

见,例如How to incrementally sample without replacement? 用于 Python 中无需替换的各种采样方式

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...