python 生成器

python 生成器,这里是指包含 yield关键字的函数,区别于类似表达式的那种情况,例如:

generator = (x*5+6 for x in range(20))

本文主要探讨 生成器函数(如下代码)在字典生成的应用。

def counts(n):i=0while i < n:yield ii +=1

关于字典

生成字典的函数,需要的必要参数:
1、组成字典的元素,可以自定义,例如一个字符(数字1-9,字母a-zA-z,符号@#$%^*&等)或者一个字符组合。
2、单一 一条字典数据中,包含的元素的个数,可以指定个数,1-n的数字,只要硬盘容量足够,可以任意长度。
组合结果由元素个数决定(元素个数的指数n**n,例如3个元素产生3 ** 3=27条数据),而不是字符个数。

字典生成代码

首先定义字典元素:

ele = list('abcdefg123456*#@')

或者通过自定义文件(文件名 dicts.txt,每个元素占一行)加载:

with open('dicts.txt') as f:ele = f.readlines()

然后设置 字典单条数据中包含元素的个数:

n=5

或者在命令行输入:

import sys
n=int(sys.argv[1])

下面看重点的生成器函数:

def t1(n, ele):a, c = ele, elefor x in range(n):yield iter(a)c = (i+j for i in ele for j in a)a = list(c)

函数中使用了生成器表达式 (i+j for i in ele for j in c),它实现了类似下面的循环嵌套:

for i in list1:for j in list2:...

理论上,可以进行无限循环嵌套。

在调用上面的生成器函数时,返回的(除第一次外)也是生成器,分别对应的是选择所有元素中的2个、3个、4个 … n个元素时产生的字典生成器,可以根据需要选择 所有元素长度的的字典,或是 某一个元素长度的字典,下面实例调用的是最后一个生成器,即元素个数为n时生成的字典。

def main(n=5):tmp = t1(n, ele)x2=[]for i in tmp:x2 = iprint(type(x2))#for j in x2:#print(j)with open('results.txt','w') as f:for i in x2:f.write('{}\n'.format(i))

上面的变量 x2 即为 函数输出的最后一个生成器,如果 n=5,x2是由5个元素组成的字典生成器,字典最后保存在results.txt文件中。

总结

通过python的生成器函数,可以输出 长度 和 组成元素 可 任意指定的字典,在 对登录页面 和 加密文件 爆破时,可以方便使用。

python生成器应用之字典生成相关推荐

  1. [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站防护

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Python网络攻防基础知识.Python多线程.C段扫描和数据库编程, ...

  2. python生成器杨辉三角_python 生成器生成杨辉三角的方法(必看)

    用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2* ...

  3. python——字典生成工具

    环境:python 3.6.7 简单的字典生成工具 # -*- coding: utf-8 -*-f = open("F:\\dict.txt", 'w') #字典文件的存储路径, ...

  4. Python字典(字典的定义,创建字典,获取字典中的数据,字典元素增删改,获取字典视图,字典的遍历,字典的特点,字典生成公式)

    1.字典的定义 2.创建字典 3.获取字典中的数据 4.字典元素增删改 5.获取字典视图 lst={'数值1':300,'数值2':100,'数值3':400,'数值4':200} print(lst ...

  5. python生成器的使用_应该如何以及为什么使用Python生成器

    python生成器的使用 by Radu Raicea 由Radu Raicea 应该如何以及为什么使用Python生成器 (How - and why - you should use Python ...

  6. python文件之间的相互调用_「Python 系列」 Python 生成器函数详解

    Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...

  7. Python生成器next方法和send方法区别详解

    yield的语法规则是: 在yield这里暂停函数执行,并返回yield后面表达式的值(默认为None),直到被next()再次调用时,从上次暂停的yield代码处继续往下执行.当没有可继续next( ...

  8. python生成器与迭代器(配套相关案列解析用法)

    一.python生成器简介 在 Python 中,使用了 yield 的函数被称为生成器(generator).跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就 ...

  9. 一篇夯实一个知识点系列--python生成器

    写在前面 本系列目的:一篇文章,不求鞭辟入里,但使得心应手. 迭代是数据处理的基石,在扫描内存无法装载的数据集时,我们需要一种惰性获取数据的能力(即一次获取一部分数据到内存).在Python中,具有这 ...

最新文章

  1. P1758-[NOI2009]管道取珠【dp】
  2. 【C语言】03-第一个C程序代码分析
  3. 浅谈如何设计MySQL索引
  4. JavaWeb 敏感词汇过滤器
  5. PS磨皮滤镜降噪插件套装Imagenomic Professional Plugin Suite有什么功能
  6. Node.Js实现最最最简单的登录注册
  7. less06 引入(importing)
  8. EXCEL的VBA宏密码破解
  9. 机器学习——激活函数sigmoid、tanh、ReLU和softmax
  10. CrystalQuartz实现Quartz的window服务的远程管理
  11. vin端口是什么意思_5G新在哪儿(6)?-天线端口的故事
  12. 详解GaussDB(DWS) 资源监控
  13. 塑壳断路器用考虑启动电流么_塑壳断路器和微型断路器的区别
  14. cnpm : 无法加载文件 D:\myDEV\newNode\node_global\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com
  15. 厂房规划物流仿真之sketchUP(SU)
  16. fdisk in minix 源代码分析
  17. 基于FPGA的FIR滤波器的实现(2)—采用kaiserord fir2 firpm函数设计
  18. WinDbg基本使用
  19. 软件工程学习笔记概要
  20. MATLAB通信工具箱之CCDF

热门文章

  1. 今天安装红警并试玩一下
  2. 六、 网络互联与互联网
  3. 神经网络算法入门和代码
  4. android自动开关流量,android开关gprs流量
  5. java 并发指南_并发编程 :Concurrent 用户指南 ( 下 )
  6. 通过一键配网,上传阿里云数据
  7. 项目经历2-电子台账系统
  8. matlab视觉呈现任务,视觉笔记 | 国内外优秀作品解读赏析(1)
  9. 攒机笔记八:笔记本选购(上)
  10. 混合模式(工厂方法模式+策略模式+门面模式)