keywords參數必須是有效的標識符,而數字不是。

官方文檔里的dict部分也寫了,直接在索引里搜「dict」,選擇(built-in class),有:

&>&>&> a = dict(one=1, two=2, three=3)
&>&>&> b = {one: 1, two: 2, three: 3}
&>&>&> c = dict(zip([one, two, three], [1, 2, 3]))
&>&>&> d = dict([(two, 2), (one, 1), (three, 3)])
&>&>&> e = dict({three: 3, one: 1, two: 2})
&>&>&> f = dict({one: 1, three: 3}, two=2)
&>&>&> a == b == c == d == e == f
True

Providing keyword arguments as in the first example only works for keys that are valid Python identifiers.


鍵只要是不可變的就行,數字不數字不是重點。數字做鍵天然支持


據我所知,Python 字典的鍵可以使用的數據類型除了字元串以外,還有數字、元組等。

以下例子創建一個鍵為數字的簡單的字典:

當然也可以給這個字典添加其他數據類型的鍵值對:

另外,創建空白字典時,使用 a = {} 也是可以的。

----- 2021-2-19 分割線 -----

有朋友回答此題說數字不能作為鍵,但官方文檔是這樣說的:


需求確定:python利用dict函數創建鍵為數字的鍵值對

dict()函數用法:

dict 語法

class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)

參數說明

  • **kwargs -- 關鍵字
  • mapping -- 元素的容器。
  • iterable -- 可迭代對象。

dict() # 創建空字典
dict(a=a, b=b, t=t) # 傳入關鍵字
dict(zip([one, two, three], [1, 2, 3])) # 映射函數方式來構造字典
dict([(one, 1), (two, 2), (three, 3)]) # 可迭代對象方式來構造字典
dict([(1, 1), (two, 2), (three, 3)])

總結:dict()函數能夠創建鍵為數字的鍵值對。

註:python基礎,可以參考如下書籍

電子書Python 數據分析基礎作者 Clinton W. Brownley會員專享¥ 34.99去查看?

電子書數據分析從入門到進階作者 陳紅波 等會員專享¥ 51.94去查看?


dict(1:10)就沒問題啊,是數字鍵。


書上寫可以通過dict(key=value)的形式創建給定鍵值對的字典,但是我在創建時如果鍵是數字的時候,比如a=dict(1 = 10)就會顯示錯誤,而用a={1:10}則沒有問題。所以如果我想用dict()函數創建鍵為數字的鍵值對應該怎麼做呢?還是說dict()函數不能創建鍵為數字的鍵值對?鍵為元組如a=dic((1,2,3)=123)也不行。


推薦閱讀:
相关文章