[問題] 字典dict() key的條件
大家好~
問題:字典 {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的說。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.38.188
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1541042008.A.525.html
→
11/01 11:39,
6年前
, 1F
11/01 11:39, 1F
→
11/01 11:52,
6年前
, 2F
11/01 11:52, 2F
→
11/01 11:52,
6年前
, 3F
11/01 11:52, 3F
→
11/01 11:52,
6年前
, 4F
11/01 11:52, 4F
→
11/01 11:54,
6年前
, 5F
11/01 11:54, 5F
→
11/01 11:55,
6年前
, 6F
11/01 11:55, 6F
→
11/01 11:56,
6年前
, 7F
11/01 11:56, 7F

→
11/01 12:09,
6年前
, 8F
11/01 12:09, 8F
→
11/01 12:49,
6年前
, 9F
11/01 12:49, 9F
→
11/01 15:24,
6年前
, 10F
11/01 15:24, 10F
推
11/01 17:17,
6年前
, 11F
11/01 17:17, 11F
→
11/01 17:18,
6年前
, 12F
11/01 17:18, 12F
→
11/01 17:23,
6年前
, 13F
11/01 17:23, 13F
我猜想 當初dict() 想用「變數=值」來設定字典:
但因為變數命名有很多條件:
比如不能用 1='one' "abc"='c' 以「數字開頭」「字串」皆不能當變數名稱
這限制了字典key表達
所以後來增加了用iterable的設定
如同neil987用的dict([(1, 2), (3, 4)])
或dict(((1, 2), (3, 4)))亦可
結論:用list或tuple設定字典,避免key的限制。
※ 編輯: Angesi (1.167.38.243), 11/03/2018 10:02:05
→
11/03 11:19,
6年前
, 14F
11/03 11:19, 14F
→
11/03 11:25,
6年前
, 15F
11/03 11:25, 15F
→
11/03 11:27,
6年前
, 16F
11/03 11:27, 16F
justoncetime
我比較希望你能和大家分享一下:
dict()中用表達式設定字典
意義為何?
(為何要用一個key受限的表達呢?)
※ 編輯: Angesi (1.167.38.48), 11/04/2018 13:58:56
→
11/04 16:20,
6年前
, 17F
11/04 16:20, 17F
→
11/04 16:20,
6年前
, 18F
11/04 16:20, 18F
→
11/04 16:22,
6年前
, 19F
11/04 16:22, 19F
→
11/04 16:22,
6年前
, 20F
11/04 16:22, 20F
→
11/05 09:09,
6年前
, 21F
11/05 09:09, 21F
→
11/07 16:11,
6年前
, 22F
11/07 16:11, 22F
→
11/07 16:12,
6年前
, 23F
11/07 16:12, 23F
推
11/07 22:53,
6年前
, 24F
11/07 22:53, 24F
Python 近期熱門文章
PTT數位生活區 即時熱門文章