如何在包含字典、整数、浮点和字符串的列表中查找项目类型?

2024-09-29 18:54:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须确定列表中包含的项目类型,但它给出的输出不完整

看起来像这样

datalist = [
    {"semester": 1, "year": "2020"},
    1452,
    11.23,
    1 + 2j,
    True,
    "Programming2A",
    (0, -1),
    [5, 12],
]

for item in datalist:
    print("Type of ", item, " is ", type(item))

Tags: of项目intrue类型列表foris
1条回答
网友
1楼 · 发布于 2024-09-29 18:54:29

我假设您正在尝试获取所有类型,包括内部类型。这里有一个简单的程序性方法。它只确定内部类型是否为容器类型,如果是,则通过函数将其发回

from typing import List, Tuple, Dict

def type_printer(target):
    if isinstance(target, (List, Tuple, Dict)):
        for t in target:
            print(f'Type of {t}  is: {type(t)}')
            if isinstance(t, (List, Tuple, Dict)):
                type_printer(t)
                
datalist = [{"semester":1, "year":'2020'}, 1452, 11.23, 1+2j, True, "Programming2A", (0, -1), [5, 12]]

type_printer(datalist)

如下面的注释所述,typing library用于类型注释。考虑到它的工作原理是相同的,我不明白为什么这很重要,但这里有另一个版本直接使用这些类型。我也不同意这一评论。我认为带注释的类型更清楚地表明我正在寻找该类型。而内置的看起来像一个实例。就连这个网站的语法突出显示似乎也同意

def type_printer(target):
    if isinstance(target, (list, tuple, dict)):
        for t in target:
            print(f'Type of {t}  is: {type(t)}')
            if isinstance(t, (list, tuple, dict)):
                type_printer(t)
                
datalist = [{"semester":1, "year":'2020'}, 1452, 11.23, 1+2j, True, "Programming2A", (0, -1), [5, 12]]

type_printer(datalist)

相关问题 更多 >

    热门问题