嗚喵王RC
@dacapo1142
Fri, Mar 17, 2023 6:55 AM
Fri, Mar 17, 2023 6:55 AM
2
[每日一坑] python math.nan是不會等於自己的,但是他可以當作dict的key
math.nan == math.nan
false
float("nan") == float("nan")
false
{math.nan: 1}[math.nan]
1
{float("nan"): 1}[float("nan")]
KeyError
嗚喵王RC
@dacapo1142
Fri, Mar 17, 2023 6:58 AM
為啥ㄋ?我猜是因為python dict在比較key的時候先比了他的id(記憶體位置),math.nan是同一個instance有相同的id於是省略比較直接當一樣,而float("nan")是兩個不同的instance,於是他呼叫了
eq
發現不相等
嗚喵王RC
@dacapo1142
Fri, Mar 17, 2023 7:10 AM
猜對ㄌ
NaNs as key in dictionaries
載入新的回覆
math.nan == math.nan false
float("nan") == float("nan") false
{math.nan: 1}[math.nan] 1
{float("nan"): 1}[float("nan")] KeyError