python字典序问题实例


Posted in Python onSeptember 26, 2014

本文实例讲述了python字典序问题,分享给大家供大家参考。具体如下:

问题描述:

将字母从左向右的次序与字母表中的次序相同,且每个字符最大出现一次..例如:a,b,ab,bc,xyz等都是升序的字符串.现对字母表A产生的所有长度不超过6的升序字符串按照字典充排列并编码如下:

1 2 .. 26 27 28 ...
a b .. z ab ac ..

对一个升序字符串,迅速计算出它在上述字典中的编码。

实现代码如下:

import string
all_letter = string.ascii_lowercase
def gen_dict():
  result = {}
  list_num_one = [ a_letter for a_letter in all_letter ]
  list_num_two = [ i + j for i in all_letter for j in all_letter[all_letter.find(i)+1:]]
  list_num_three = [ i + j + k for i in all_letter 
           for j in all_letter[all_letter.find(i)+1:]
           for k in all_letter[all_letter.find(j)+1:]]
  list_num_four = [ i + j + k + l for i in all_letter 
           for j in all_letter[all_letter.find(i)+1:]
           for k in all_letter[all_letter.find(j)+1:]
           for l in all_letter[all_letter.find(k)+1:]]
  list_num_five = [ i + j + k + l + m for i in all_letter 
           for j in all_letter[all_letter.find(i)+1:]
           for k in all_letter[all_letter.find(j)+1:]
           for l in all_letter[all_letter.find(k)+1:]
           for m in all_letter[all_letter.find(l)+1:]]
  list_num_six = [ i + j + k + l + m + n  for i in all_letter
      for j in all_letter[all_letter.find(i)+1:]
      for k in all_letter[all_letter.find(j)+1:]
      for l in all_letter[all_letter.find(k)+1:]
      for m in all_letter[all_letter.find(l)+1:]
      for n in all_letter[all_letter.find(m)+1:]
      ]
  for key,value in enumerate(list_num_one + list_num_two + list_num_three + list_num_four + list_num_five + list_num_six):
    result.setdefault(key+1,value)
  return result
  
my_dict = gen_dict()
value_to_get = 'abcdef'
for key,value in my_dict.iteritems():
  if value == value_to_get:
    print key

结果:83682

即abcdef在字典中的编码。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python使用urllib2获取网络资源实例讲解
Dec 02 Python
Python使用Flask框架同时上传多个文件的方法
Mar 21 Python
python3 发送任意文件邮件的实例
Jan 23 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
一文带你了解Python中的字符串是什么
Nov 20 Python
python中partial()基础用法说明
Dec 30 Python
python把转列表为集合的方法
Jun 28 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
Apr 03 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
Python下划线5种含义代码实例解析
Jul 10 Python
Django程序的优化技巧
Apr 29 Python
python计算书页码的统计数字问题实例
Sep 26 #Python
python实现从web抓取文档的方法
Sep 26 #Python
python实现udp数据报传输的方法
Sep 26 #Python
python使用Berkeley DB数据库实例
Sep 26 #Python
python实现通过shelve修改对象实例
Sep 26 #Python
python实现在pickling的时候压缩的方法
Sep 25 #Python
python使用cPickle模块序列化实例
Sep 25 #Python
You might like
德劲1107的电路分析与打磨
2021/03/02 无线电
PHP文件上传实例详解!!!
2007/01/02 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php的dl函数用法实例
2014/11/06 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
php批量删除操作代码分享
2017/02/26 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
列表内容的选择
2006/06/30 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
python实现在目录中查找指定文件的方法
2014/11/11 Python
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Python随机生成彩票号码的方法
2015/03/05 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
python 如何设置守护进程
2020/10/29 Python
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
大学生个人推荐信范文
2013/11/25 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
升职自荐信怎么写
2015/03/05 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js