1. 程式人生 > >Python進階系列連載(2)——那些容易被忽略的問題(中)

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,反正閒著也是閒著呢,不如學點東西啦~~