[問題] 字典dict() key的條件

作者: Angesi (小雲豹)   2018-11-01 11:13:25
大家好~
問題:字典 {key:value}
a = {1:'one'} #一般定義 OK
b = dict(one=1, two=2, three=3) #指定變數表達 OK
c = dict(1='one') #用dict() key用數字 結果不行
SyntaxError: keyword can't be an expression
為何用1='one'建立字典不行呢?
PS.原則上,只要能hash的,應該都能當作key的說。
作者: justoncetime (台北叢林好冷~)   2018-11-01 11:39:00
這個是壹→ 1='one' 是什麼意思可以解釋一下嗎?
作者: neil987 (R5大小姐-EX人品崩壞)   2018-11-01 11:52:00
其實是可以 只是你用錯方法>>dict([(1, 2), (3, 4)])>>{1: 2, 3: 4}
作者: justoncetime (台北叢林好冷~)   2018-11-01 11:54:00
解法當然有dict([(1,'one')]) 但直接得解,不如從問題中思考、學習收穫會更多
作者: neil987 (R5大小姐-EX人品崩壞)   2018-11-01 11:56:00
https://i.imgur.com/YoaFxgV.jpg Ref:python3 document所以這說起來其實不是dict的問題XD
作者: ThxThx (洗洗睡)   2018-11-01 12:49:00
仔細看錯誤是SyntaxError(而不是 ValueError)
作者: shadow0326 (非議)   2018-11-01 15:24:00
你就想想,為什麼你的b不是dict('one'=1, 'two'=2)
作者: bugbug777 (sil)   2018-11-01 17:17:00
我現在好亂neil987是正解 justoncetime這個也行喔…啊啊 我沒看清楚 sry
作者: justoncetime (台北叢林好冷~)   2018-11-03 11:19:00
跟我在一樓料想的一樣,連基本的assign都沒弄清楚你觀念裡有變數,就沒有常數嗎?再者遊戲規則往往有其意義,有無思考過為何不能那樣
作者: rofellosx (鏖)   2018-11-05 09:09:00
這東西沒有猜想..
作者: rdchen1124 (Drchen1124)   2018-11-07 16:11:00
整篇看完,發現justoncetime大大整個循循善誘,希望樓主能多思考一下,你的錯誤訊息應該可以給你答案
作者: benedict76 (ben)   2018-11-07 22:53:00
1='one' 這樣的程式第一次看到

Links booklink

Contact Us: admin [ a t ] ucptt.com