python列表所有元素平均值_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...
在练习日4中,小鱼给大家讲述了神秘的ASCII码编译及解密过程. 在ASCII码中,字符与十进制数字的互相转换是通过 ord()函数 和 chr()函数。
今天小鱼要给大家介绍另一种在影视剧、侦探小说中更是鼎鼎大名的密码--摩斯密码。
莫斯密码,英文叫做Morse code,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。
摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个字符之间短的停顿、每个词之间中等的停顿以及句子之间长的停顿。下图为摩斯密码对照表:
现在我们将26个英文字母对应摩斯密码表,如下:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
我们再将26个英文字母对应的写到一个字符串中:
"abcdefghijklmnopqrstuvwxyz"
我们来试一试吧!
小鱼提示:
在摩斯密码中,编译、解密的过程就是索引指令中字母在字母表中的对应位置,根据这个位置索引在摩斯密码表中的对应位置。
第一步,我们把每一个单词从单词列表中取出来,使用 遍历 基础代码块。
第二步,把每一个单词中的字母在字母串中所对应的位置取出来,定义为word_index,对应letter_str.index(r)。
第三步,根据位置信息,再到摩斯密码表中取出来它的密码。
第四步,把最终的密码拼接起来,打印出来即可。
补充知识:index()
Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
str.index(str, beg=0, end=len(string))
- str -- 指定检索的字符串
- beg -- 开始索引,默认为0。
- end -- 结束索引,默认为字符串的长度。
index( )相当于索引功能的反向操作:索引是根据位置找元素,而index( )是根据元素找位置。
解题方法:
morse_code_list = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]letter_str = "abcdefghijklmnopqrstuvwxyz"word_list = ["abc", "cba"]result = ""
for i in word_list:for r in i:# 取出来每一个字母在letter_str中的位置,根据元素找位置,用Index()word_index = letter_str.index(r)# 根据取出来的位置,从morse_code_list获取到摩斯密码值,根据位置找元素,用索引morse_code = morse_code_list[word_index]result = result + morse_code + "|"
# 打印结果
print(result)
在ASCII码和摩斯密码的转化过程中,核心点在于它们都存在转换的逻辑也就是编译、解密遵循的规则。
在ASCII码中,这个规则 ord()函数 和 chr()函数,只要有指令,就可以把指令拆分,并逐一通过函数进行转换。
在摩斯密码中,这个规则就是索引指令中字母在字母表中的对应位置,根据这个位置索引在摩斯密码表中的对应位置。这与ASCII码的规则是有本质不同的。
因此,当规则遵循位置对应时,我们应该想到列表的定义:一系列按照特定顺序排列的元素的数据类型。利用列表元素的索引来实现需求。
也由此我们可以抽取 根据 一个元素 的在某个列表(这个列表中必须包含这个元素)的索引位置 对应到另一个列表(这个列表中不一定包含这个元素)元素 的基础代码块。
一个元素: r
列表1=['abckdahfsdl r ksdf']
列表2=[123413534523451341341]对应位置=列表1.index(r) #根据元素找位置,用Index()
所求元素=列表2[对应位置] #根据位置找元素,用索引
听完小鱼的介绍,是不是觉得摩斯密码也很简单呢?
相信你已经能编译和解密出摩斯密码,成为一个特工了。快试试吧。
python列表所有元素平均值_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...相关推荐
- python中最大值最小值平均值_来自lis的Python平均值、最大值、最小值
所以我有这样一个清单:kesto = ['3m 24s', '45s', '1h 2m 40s'] 我需要找到这些的平均值,最小值和最大值. 我试过: ^{pr2}$ 但这当然行不通,因为这些不是数字 ...
- python中字体加粗_全网python中xticks字体加粗搜索-第二电脑网
第二电脑网 网页 电脑论坛 电脑知识 搜吧 问问 博客 新闻 更多» soso.mark('logo_start'); soso.mark('logo_end'); 帮助 | 第二电脑网为主页 | 提 ...
- python图形界面设计代码_(八)Python 图形化界面设计
3.1.文本输入和输出相关控件:文本的输入与输出控件通常包括:标签(Label).消息(Message).输入框(Entry).文本框(Text).他们除了前述共同属性外,都具有一些特征属性和功能. ...
- 苹果主题商店_苹果手机怎么换铃声?全网最简单的教程来了,小白秒学会
原标题:苹果手机怎么换铃声?全网最简单的教程来了,小白秒学会 当身处公交.地铁等公共场所时,听到iPhone熟悉的来电铃声,不少iPhone用户都会下意识地拿出手机确认是否有来电,然而真实情况往往是别 ...
- 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...
Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...
- python list元素类型_阿博的Python之路-详解List数据类型
之前阿博分享了String的数据类型知识,接下来要分享是的List数据类型.这种数据类型是在日常开发当中最常使用到的. python数据列表 简单创建List list1 = ['Python','J ...
- python删除元素del 可以删除部分元素吗_可以使用del删除集合中的部分元素。
[判断题]Python集合可以包含相同的元素.(3.0分) [单选题]student = dict(姓名='张三', 年龄=20, 性别='男'),则student.get("name&qu ...
- python合并两个属性_合并两个部分包含文件列表及其属性的最有效方法
我有一个系统,该系统运行带有ls或dir命令的变体的自定义cli,并返回工作目录中文件和文件夹的列表. 问题是,我可以使用带标志的命令运行命令,该标志返回文件及其时间戳(创建和最后修改的日期),或者返 ...
- 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个
欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...
- 趣学python教孩子学编程_《趣学Python——教孩子学编程》学习笔记第1-3章
第1章 Python不是大蟒蛇 1.1 关于计算机语言 计算机程序是一组让计算机执行某种动作的指令.软件就是计算机程序的集合. 一种编程语言就是一种特定的与计算机交谈的方式,这种方式使用计算机和人都能 ...
最新文章
- 由于不知线程池的bug,某Java程序员叕被祭天
- centos 安装java web_Centos上安装java web的环境
- linux内核网络协议栈--linux网络设备理解(十四)
- 数位dp 记忆化搜索java_hdu 5787 数位dp,记忆化搜索
- HTMl文件的阶层架构 访问父元素和子元素
- hoj 2741 The Busiest Man // 强连通分支+缩点+传递闭包
- 【吾日三省吾身】2015.6.07-涅槃行动第二十天
- 使用IP-guard补丁分发批处理脚本实现分发补丁
- unity5.x游戏开发指南示例下载
- 怎么让放大的图片变清晰?
- 计算机类毕业设计评阅书评语,本科毕业论文专家评阅评语
- 中台战略=微服务+服务治理+组织架构
- VS2016相对路径起点
- Cocos2d-X Box2D内容讲解
- NC14548-B-逃脱(bfs)
- 插图精美的html css教程
- Zygote如何fork一个进程
- 灰度共生矩阵原理+Matlab中实现
- 如何将二维码分解成链接?二维码解码在线怎么操作?
- MySQL语法学习笔记
热门文章
- POJ 2159 解题报告
- ASP.NET MVC 3—一切的开始MvcHandler、MvcHttpHandler
- 中国队新主帅朱广沪印象
- Exynos4412 BSP平台搭建(详细图解)
- Pytorch squeeze() 和 unsqueeze() 方法区别
- 2018修复激活闪退_IOS越狱后和平精英闪退、黑屏、10min封号的解决办法!
- python实现通讯录的增删改查_python实现数据库增删改查
- python定时器 循环_Python循环定时服务功能(相似contrab)
- Emacs进阶之按键重映射
- web之webassembly安装