python - 通过检查列表中的元素类型,返回错误值
问题描述
有 2 个列表,一个带有 dict 内部,一个带有 int 的 snother
values_dict = [{'other clicks': 497, 'photo view': 509, 'link clicks': 49}]
values_int = [1055]
我必须先检查里面元素的类型,然后再做点别的
所以,最简单的方法:
for v in values_dict:
if type(v) == dict:
print('1')
elif type(v) != dict:
print('2')
我不知道为什么,但它返回“2”,就像 values_dict 变量中没有字典一样。
然而,
for v in values_dict:
print(type(v))
退货<class 'dict'>
我试过这样
for v in values_dict:
if isinstance(value, type(dict)) is True:
print('1')
else:
print('2')
它还返回“2”
我不知道是什么问题,有人遇到过同样的问题吗?
解决方案
这应该可以工作-您的第二个代码稍微偏离了。type()
可以在此处查看文档,并建议isinstance()
用于测试对象的类型。的返回值type
是一个类型对象 - 不是字符串,因此根据字符串测试它的值通常会产生意想不到的结果。
for v in values_dict:
if isinstance(v, dict):
print('1')
else:
print('2')
输出:
1
推荐阅读
- javascript - 如何将数组对象的小写转换为大写
- java - 如何在recyclerview中为cardview android设置带有int数组的onclicklistener
- wordpress - 一个不可见的提示覆盖了我的 wordpress 网站主页,并且在单击 x 时不会关闭
- javascript - 如何在继续之前尝试捕获等待响应?
- visual-studio-code - Markdown-Preview-Enhanced:使用 Rmd 启用实时更新
- arrays - 快速检查日期是今天还是明天
- node.js - 如何使用节点控制台原始值?
- microsoft-graph-api - 如何使用 Graph Api 检索电子邮件的子文件夹 ID
- linux - 如何在没有管理员权限的 Linux 容器上安装 libgdiplus 包
- json - 我想返回带有时间戳和计数的对象