随机数
| 函数名称 | 函数功能 | 参数说明 |
|---|---|---|
| rand(d0, d1, …, dn) | 产生均匀分布的随机数 | dn为第n维数据的维度 |
| randn(d0, d1, …, dn) | 产生标准正态分布随机数 | dn为第n维数据的维度 |
| randint(low[, high, size, dtype]) | 产生随机整数 | low:最小值;high:最大值;size:数据个数 |
| random_sample([size]) | 在[0,1)内产生随机数 | size:随机数的shape,可以为元祖或者列表,[2,3]表示2维随机数,维度为(2,3) |
| random([size]) | 同random_sample([size]) | 同random_sample([size]) |
| ranf([size]) | 同random_sample([size]) | 同random_sample([size]) |
| sample([size])) | 同random_sample([size]) | 同random_sample([size]) |
| choice(a[, size, replace, p]) | 从a中随机选择指定数据 | a:1维数组 size:返回数据形状 |
| bytes(length) | 返回随机位 | length:位的长度 |
生成器
生成器是这样一个函数,它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第 n 次)调用跳转至该函数中间,而上次调用的所有局部变量都保持不变。
生成器不仅“记住”了它数据状态;生成器还“记住”了它在流控制构造(在命令式编程中,这种构造不只是数据值)中的位置。
生成器的特点:
生成器是一个函数,而且函数的参数都会保留。
迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的
生成器表达式示例:
defindex_words(text):
result=[]
if text:
result.append(0)
for index,letter in enumerate(text,1):
if letter == ' ':
result.append(index)
return result
result=index_words("I am rong")
for a in result:
print(a)
使用生成器的情况:
defindex_words(text):
if text:
yield 0;
for index,letter in enumerate(text,1):
if letter==' ':
yield index,letter
result=index_words('I am rong')
for a in result:
print(a)
def get_province_population(filename):
withopen(filename) as f:
for line in f:
yield int(line)
gen = get_province_population('data.txt')
all_population =sum(gen)
for population in gen:
printpopulation / all_population #错误
迭代器
print i
for line in f: #for循环使用迭代器协议访问文件
print(line)
本文探讨了Python中的随机数、生成器和迭代器。生成器是一种特殊的函数,能记住上一次调用的状态,允许在多次调用间进行跳转。生成器的特点包括参数保留,使得在所有调用中参数保持一致。通过示例展示了生成器表达式和使用场景,如在处理文本分隔和读取文件时。同时,提到了迭代器的概念,并指出在使用生成器时,一旦遍历过一次,再次遍历会引发错误。
20万+

被折叠的 条评论
为什么被折叠?



