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 不关闭控制台的实现方法
Oct 23 Python
Python 元组(Tuple)操作详解
Mar 11 Python
Python def函数的定义、使用及参数传递实现代码
Aug 10 Python
Python迭代器和生成器介绍
Mar 06 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
wxPython实现带颜色的进度条
Nov 19 Python
Django CSRF认证的几种解决方案
Mar 03 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
Jan 26 Python
Pytorch之扩充tensor的操作
Mar 04 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
ThinkPHP惯例配置文件详解
2014/07/14 PHP
orm获取关联表里的属性值
2016/04/17 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
一个简单的javascript类定义例子
2009/09/12 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
在Python中处理XML的教程
2015/04/29 Python
对python周期性定时器的示例详解
2019/02/19 Python
python实现支付宝转账接口
2019/05/07 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
财务情况说明书范文
2014/05/06 职场文书
学校志愿者活动总结
2014/06/27 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2016年公司新年寄语
2015/08/17 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js