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))
解决方案
我假设您正在尝试获取所有类型,包括内部类型。这是一个简单的程序方法,您可以做到这一点。它只是确定内部类型是否是容器类型,如果是,则通过函数将其发回。
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)
推荐阅读
- python - Python:在不同的窗口中绘制多个图形(相同的数据但具有不同的 X 范围)
- alamofire - AlamofireImage:如何为 af_setImage 设置 timeoutIntervalForRequest?
- django - Django ORM - 查询取决于通过表
- protractor - 迭代直到找到匹配的文本
- dart - 如何在 Flutter 上以编程方式清除应用程序缓存
- python - 如何在 Python 中找到两个一维数组之间的马氏距离?
- gcc - 可以提取我当前的工具链吗?
- google-compute-engine - GCE 托管组(自动缩放)- HTTP(S) 和 TCP 请求的代理/负载均衡器
- python - 使用固定输入变量进行回归预测的等高线图
- javascript - Angular 6:带有providedIn的服务:'root'在组件中返回空对象