Python進階系列連載(2)——那些容易被忽略的問題(中)
字串快速轉換為列表
在入門階段我們講了不同資料型別的轉換關係,比如列表和元組。
這裡講講字串轉為列表!
小明:有需要Python學習資料的小夥伴嗎?小編整理【一套Python資料、原始碼和PDF】,感興趣者可以加學習群:548377875,反正閒著也是閒著呢,不如學點東西啦~~
小明:老溼!字串和列表好像不像會發生關係的啊!
小明,那我問問你,如果把一個字串 'Python' 的每個字元作為列表元素,怎麼操作?
小明:emmm,小紅,還是你來回答吧,畢竟我們也是有關係的。
小紅:。。。
小紅:老師,我覺得可以這樣:
小紅的列表生成式學的很不錯啊!給你點贊~
我們今天新學一種方法:
這樣是不是很簡單,就像給元組穿上list外衣一樣,給字串披上list的外衣,就變成了list
小明:老溼!這個看起來也就一般般啊!如果我想把‘I love Python’變成列表,元素分別是I love Python這三個,怎麼做呢??【壞笑】
這個嘛...應該是...
小明:老溼,你不會了吧!!!
其實我是在逗你的,我們新學一個字串分割的方法,分割,有點像列表的切片,只不過之前我們一般是定好位【找到索引】,一刀切下去。
小明:那現在呢?
現在嘛,按照特點切。
小明:什麼是按照特點切?
聽過庖丁解牛的故事麼?
小紅:老師,是因為他是從牛身上的骨節脆弱部分切開!
是啊,所以我們可以認為骨節是一種特徵,我們找到字串的特徵就能完成任務!
小明:我明白了,我要求的分割字串就是按照空格分開的!
是的沒錯,我們現在根據空格將字串轉為列表,小明,給我把我用了19年的那把宰牛刀拿來!
小明:emmm
使用方法:字串.split('分隔符')
預設是空格,所以這裡寫了兩種!
小明:那如果是2017-12-06呢?
小紅:這很簡單啊,這樣即可:
小紅舉一反三能力不錯~
像之前的空格和這裡的‘-’都叫做分隔符。
字典中按照鍵的順序輸出
還記得入門部分降到字典時候麼?字典有三大特性其中有一個就是無序性!
小明:老溼,所以呢?
emmm,小明,你聽我說完!所以我給你出個題:
你看,現在我想按照key的字母順序看看打印出來的結果,但是先列印的是b,這怎麼辦!
小明:老溼,你要求真高!不過我真的不會。。
好吧,可以這樣的:
我們給字典套上個sorted的外衣就行啦!
小明:老溼,我就這個表情:
小明,我們要講的重點是,還記得字典裡的key是唯一的麼?
小明:記得啊,我還記得根據key可以查詢value呢!
那你很棒棒哦,如果讓你通過value找key,怎麼做呢?
小明:自己挖的坑....
嗯,這個確實比較難,我們來看看
還是用剛才的dict1:
我們定義一個叫reverse_lookup的函式,傳入兩個引數
第一個是要查詢的字典,第二個是要查的值
然後迴圈字典,將鍵對應的值分別和要查詢的值比較,當出現異樣的就返回!
小明:看起來不錯啊
是啊,看起來不錯,但是當我們要找的值不在字典裡呢?
什麼都沒返回的樣子!按照我們的思路,找不到東西也應該告訴我啊
還記得我大學時去面試實習生,面試了3家公司,最後都沒給我結果,也不通知我面試沒過,這樣確實不太好,直白點多好!
所以我們這裡學個新的系統關鍵字:raise
它可以丟擲異常!
小明:老溼,我們不喜歡異常,你還要生成異常???
我們看一下具體操作!
仔細看看函式重新定義的吧
小明:不就是加了raise那句麼?
注意縮排!當找到值對應的key,直接執行return,然後將返回的值傳回函式呼叫處,函式就呼叫結束了
當我們沒找到時候,最後會丟擲我們設定的LookupError
小明:老溼,那其實可以這樣啊!
emmm,是的,這樣也可以,不過我這裡要強調的是raise的用法!
小明:好吧。。。
小明:有需要Python學習資料的小夥伴嗎?小編整理【一套Python資料、原始碼和PDF】,感興趣者可以加學習群:548377875,反正閒著也是閒著呢,不如學點東西啦~~