>> h2 = data[0] >>> a = {0: "... ", 1: "..- ", 2: ".-."} >>> print (0 in a) True-6ren">
gpt4 book ai didi

python - 有人可以解释这种字典行为吗?

转载 作者:行者123 更新时间:2023-11-28 21:22:02 26 4
gpt4 key购买 nike

>>> 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])

别名有问题吗?

最佳答案

h2 是一个字符串 值,但您的字典键是整数。仅包含数字的整数和字符串打印相同,但不是相同的类型,并且与 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

关于python - 有人可以解释这种字典行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com