我有字典-
d = dict(
0='a',
1='b',
2='c'
)
如何确定d
是否为dict
类型的(int, str)
?
在C#中,它将类似于:
d.GetType() == typeof(Dictionary<int, string>)
答案 0 :(得分:2)
Python字典没有类型。您实际上必须检查每个键和值对。例如
all(isinstance(x, basestring) and isinstance(y, int) for x, y in d.items())
答案 1 :(得分:0)
在单个Python字典中,值可以是任意类型。密钥还有其他要求,即它们必须是可散列的,但它们也可能涵盖多种类型。
要检查字典中的键或值是否为特定类型,可以对其进行迭代。例如:
values_all_str = all(isinstance(x, str) for x in d.values())
keys_all_int = all(isinstance(x, int) for x in d)
答案 2 :(得分:0)
如果您使用的是Python 3.7,则可以执行以下操作:
from typing import Dict
d: Dict[int, str] = { 0: 'a', 1: 'b', 2: 'c' }
print(__annotations__['d'])
然后返回:typing.Dict[int, str]
有一个函数PEP-0526,将来可能会有用,但目前仅知道类型为以下的对象:
函数,方法,模块或类
{{3}}还说,对此有待解决