>>> data = "0:1:2"
>>> h2 = data[0]
>>> a = {0: "... ", 1: "..- ", 2: ".-."}
>>> print (0 in a)
True
>>> print (h2)
0
>>> print (h2 in a)
False
>>> print (a.keys())
dict_keys([0, 1, 2])
别名出了什么问题?
答案 0 :(得分:6)
h2
是字符串值,但您的字典键是整数。只包含数字 print 的整数和字符串相同,但是不是相同的类型,与JavaScript不同,Python不认为它们在整数和字符串之间相等或强制。
首先将字符串显式转换为整数:
>>> type(h2)
<class 'str'>
>>> type(next(a)) # first key in a
<class 'int'>
>>> int(h2) in a
True
>>> a[int(h2)]
'... '
要正确查看不同类型之间的差异,请在打印时使用repr()
:
>>> print(repr(h2))
'0'
>>> print(repr(0))
0
请注意字符串值周围的引号。默认情况下,Python交互式shell在回显值时会使用repr()
(除了None
之外的所有内容都会被回显):
>>> 'a string value'
'a string value'
>>> 42
42