盤點(diǎn)一個(gè)Python字典dict作妖寫法
回復(fù)“資源”即可獲贈(zèng)Python學(xué)習(xí)資料
大家好,我是皮皮。
一、前言
前幾天在Python最強(qiáng)王者交流群有個(gè)叫【老松鼠】的粉絲問了一個(gè)Python基礎(chǔ)問題,這里拿出來給大家分享下,一起學(xué)習(xí)下。

二、解決過程
這個(gè)問題挺基礎(chǔ)的,看上去確實(shí)也不難。但是把這個(gè)輸出打印出來,一開始還是讓人挺難接受的。
dic?=?{True:?'yes',?1:?'no',?1.0:?'maybe'}
for?i?in?dic.keys():
????print(i)
print(list(dic.items()))
正是如你看到的那樣,結(jié)果就只有[(True, 'maybe')],而不是[(True: 'yes'), (1: 'no'), (1.0: 'maybe')],那么這塊怎么來理解呢?
這里不得不拿上一次【瑜亮老師】在群里普及的Python知識(shí),如下圖所示。

1==true=1.0,dict的key值唯一,所以就一個(gè)值。所以三個(gè)key是一樣的,于是就第一次賦值,后面兩次都重新賦值,key不變,相當(dāng)于是update,保留最后一個(gè)。
這樣的話,為啥key不由True變?yōu)?code style="font-size: 14px;word-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin: 0 2px;color: #1e6bb8;background-color: rgba(27,31,35,.05);font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;word-break: break-all;">1.0的問題,就迎刃而解了。說到這里,又想把之前的這個(gè)文章,拿出來給大家看看了。

Python的基本數(shù)據(jù)類型有這6種:不可變數(shù)據(jù)(3 個(gè)):Number(數(shù)字)、String(字符串)、Tuple(元組);可變數(shù)據(jù)(3 個(gè)):List(列表)、Dictionary(字典)、Set(集合)。其中Number有?int、float、bool、complex(復(fù)數(shù))這4種。既然4個(gè)都是Number,那就是說他們就可以直接相加。并且True == 1 == 1.0 == 1e0的結(jié)果就是True!
三、總結(jié)
大家好,我是皮皮。這篇文章主要分享了一個(gè)Python字典dict作妖寫法,針對(duì)該問題給出了具體的解析和代碼演示,幫助粉絲順利解決了問題。
最后感謝粉絲【老松鼠】提問,感謝【瑜亮老師】、【月神】、【dcpeng】給出的具體解析和代碼演示,感謝【冷喵】、【PI】等人參與學(xué)習(xí)交流。
小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬水千山總是情,點(diǎn)個(gè)【在看】行不行
