[问题] 字典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