python 字典的键值能否是数字?
b = dict(1='a', 2='b', 3='c', 4='d', 5='e')print(b)
书上这么写的
“键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。”
我这么写可不可以?
错在哪了?
求助呀。 dict 和 dict.update 只允许键是字符串 本质是用星号包起来的
>>> dict(**{1:'a', 2:'b', 3:'c', 4:'d', 5:'e'})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: keywords must be strings 本帖最后由 kogawananari 于 2020-10-27 16:06 编辑
但是用逆向items创建字典是可以的
>>> dict([(1,'a'),(2,'b'),(3,'c')])
{1: 'a', 2: 'b', 3: 'c'} 1.键值可以是整数
2.这样写不可以。
>>> b = {1:'a',2:'b'}
>>> b
{1: 'a', 2: 'b'}
你这样写法是借助赋值语句给出字典键和值,即1='a'是个“赋值语句”,当然必须符合赋值语句的规则,数字是不能作为变量名的。 键可以是数字
但是浮点数作为键时要稍加小心
some_dict = {}
some_dict = "Ruby"
some_dict = "JavaScript"
some_dict = "Python"
>>> some_dict
"Ruby"
>>> some_dict
"Python"
>>> some_dict
"Python"
Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同.
具有相同值的不可变对象在Python中始终具有相同的哈希值.
>>> 5 == 5.0
True
>>> hash(5) == hash(5.0)
True
注意: 具有不同值的对象也可能具有相同的哈希值(哈希冲突).
当执行 some_dict = "Python" 语句时, 因为Python将 5 和 5.0 识别为 some_dict 的同一个键, 所以已有值 "JavaScript" 就被 "Python" 覆盖了.
下面是很多python中的坑
wtf python 冬雪雪冬 发表于 2020-10-27 16:05
1.键值可以是整数
2.这样写不可以。
谢谢,已经了解了。 kogawananari 发表于 2020-10-27 16:00
dict 和 dict.update 只允许键是字符串 本质是用星号包起来的
十分感谢。
页:
[1]