如何判断变量是否是特定类型的字典?即dict(int,str)

问题描述 投票:0回答:3

我有一本字典 -

d = dict(
    0='a',
    1='b',
    2='c'
)

如何判断ddict类型的(int, str)

在C#中它是这样的:

d.GetType() == typeof(Dictionary<int, string>)
python dictionary types isinstance
3个回答
2
投票

Python词典没有类型。你必须检查每个键和值对。例如。

all(isinstance(x, basestring) and isinstance(y, int) for x, y in d.items())

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)

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]

有一个函数typings.get_type_hints可能在将来有用,但目前只知道类型的对象:

功能,方法,模块或类

PEP-0526还说要做些什么

© www.soinside.com 2019 - 2024. All rights reserved.