python find函数 和index的区别_【全网最简单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 find函数 和index的区别_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python制作英语字典_如何在Pyth
- 下一篇: python中str和int区别_Pyt