random.sample
语法:
random.sample(list, N)
list: 一个数组,可以是元素数组,也可以是其他的数组。比如: numbers=[1,2,3,4,5]
N: 从数组中随机取出N个
例1
从数组中随机取出2个元素,代码片段如下:
import random
numbers = [1,2,3,4,5]
chosen = random.sample(numbers, 2)
print(chosen)
print(chosen[0])
print(chosen[1])
运行结果:
[4, 5]
4
5
注:数组的起始位为0
例2
python与selenium结合,做自动化测试,有时候需要实现随机获取一个元素。
比如:获取“我的订单”页面所有的订单,任意选中一个,并且查看订单详细信息。
从元素数组中随机取出1个元素,代码片段如下:
import random
from selenium import webdriver
def ChooseOneProvideRxButton(self):
print('find all provide Rx buttons')
buttons = self.driver.find_elements_by_xpath(self.ProvideRx_xpath)
find_element:获取某个元素,如果根据查找条件可以找到多个满足条件的元素,那么会默认选择第一个元素
find_elements:获取某组元素
print('all buttons:', buttons)
ProvideRxButton = random.sample(buttons, 1)
print('the random choice of ProvideRx button is:', ProvideRxButton)
ProvideRxButton.click()
print('click provide Rx button')
运行结果:
find all provide Rx buttons
all buttons: [<selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-1")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-2")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-3")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-4")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-5")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-6")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-7")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-8")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-9")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-10")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-11")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-12")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-13")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-14")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-15")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-16")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-17")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-18")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-19")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-20")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-21")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-22")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-23")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-24")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-25")>, <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-26")>]
the random choice of ProvideRx button is <selenium.webdriver.remote.webelement.WebElement (session="94021498b64fe386d271daf3a11ffe91", element="0.9159857526812423-19")>
click provide Rx button
random.choice
语法:
random.choice(list)
从list 数组中随机获取一个元素
import random
numbers = [1,2,3,4,5]
chosen = random.choice(numbers)
print(chosen)
运行结果:
1
同理,这个也可以用于自动化测试中获取任一一个页面元素
random.randint
语法:
random.randint(N, M)
N: 起始数
M: 终止数
从N到M随机取出一个数
import random
chosen = random.randint(2,6)
print(chosen)
运行结果:
5
本文主要讲python 利用random取随机数的方法三种方法random.sample()random.choice()random.randint()random.sample语法: random.sample(list, N)list: 一个数组,可以是元素数组,也可以是其他的数组。比如: numbers=[1,2,3,4,5] N: 从数组中随机取...
python
在一个范围内
取
随机数
的
方法
:
可以利用random.uniform()函
数
来实现。
random.uniform()函
数
用于生成一个指定范围内的
随机
浮点
数
,如:【random.uniform(10, 20)】。
random.randint(a, b),用于生成一个指定范围内的整
数
。其中参
数
a是下限,参
数
b是上限,生成的
随机数
n: a <= n <= b。
代码示例:
print random.randint(12, 20) # 生成的
随机数
n: 12 <= n <= 20
print random.randint(20, 20) # 结果永远是20
# prin
(1)
取
随机
小
数
random.random() ,
随机
取
一个( 0-1)之间的
随机
小
数
random.uniform(a,b) ,
随机
取
一个(a-b)之间的
随机
小
数
import random
print(random.random())
print(random.uniform(1,2))
#输出结果:
#0.5197468585617347
#1.8517038679031552
(2)
取
随机
整
数
random.randint(1,3) ,
随机
取
一个[1-3]的整
数
,包含1和3
random.randrange(5) ,
随机
取
一个
利用oracle的dbms_random包结合rownum来实现,示例如下,
随机
取
499户: select * from ( select * from busi.t_ar_userinfo order by dbms_random.value) where rownum < 500; 有关dbms_random的参考文献,链接为:http://www.psoug.org/reference/dbms_random.html Deprecated. Use the methods in the DBMS_CRYPTO built-in package,这个包已经不建议使用了 附,dbms_ra
为了帮助理解,先来看三类
随机
问题的对比:
1.已有n条记录,从中选
取
m条记录,选
取
出来的记录前后顺序不管。
实现思路:按行遍历所有记录,约隔n/m条
取
一个
数
据即可
2.在1类情况下,还要求选
取
出来的m条记录是
随机
排序的
实现思路: 给n条记录,分别增加一列标记,值为
随机
选
取
的1至n之间的不重复
数
据。
3.区别于1,2类问题, 如果记录是有权重的,如何结合权重去
随机
选
取
。 比如A的权重为10, B的权重股为5, C的权重为1, 则
随机
选
取
4个时可能应该出现AABB。
第3类问题便是本文重点了。
实现思路: 以 A:10, B:5, C:1 三条记录上
随机
选
取
4条为例,(是否以权重
b = random.sample(a, 5)
以上这篇
python
随机
取
list中的元素
方法
就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:
Python
实现基于权重的
随机数
2种
方法
TensorFlow中权重的
随机
初始化的
方法
Python
利用带权重
随机数
解决抽奖和游戏爆装备问题
Python
random模块(获
取
随机数
)常用
方法
和使用例子P
import random
data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
random.choice(data) #
随机
选
取
一个元素
2. 从一个lis...
random.randint(a,b)
在
python
中的random.randint(a,b)用于生成一个指定范围内的整
数
。其中参
数
a是下限,参
数
b是上限,生成的
随机数
n: a <= n <= b。
下限必须小于等于上限,大于上限报错。
random.randint(1,50)#
随机
生成最小值为1,最大值为50的整
数
(可以等于上下限)
random.randint(20,
# 生成100个1-1000负指
数
分布的
随机数
nums = np.random.exponential(scale=100, size=100)
nums = 1/nums * 1000 # 将
随机数
转换为1-1000的范围
print(nums)
解释一下代码:
1. 首先导入numpy库。
2. 使用`np.random.exponential(scale=100, size=100)`函
数
生成100个负指
数
分布的
随机数
,其中`scale`参
数
表示指
数
分布的尺度参
数
,这里设置为100,`size`参
数
表示生成的
随机数
个
数
,这里设置为100。
3. 接着将生成的
随机数
转换为1-1000的范围,
方法
是将每个
随机数
取
倒
数
再乘以1000。
4. 最后输出生成的
随机数
。
注意:负指
数
分布的
随机数
是连续的实
数
,所以生成的
随机数
可能会超过1000或小于1,但这种情况出现的概率非常小。