【发布时间】:2020-03-21 23:51:58
【问题描述】:
有 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'
我不知道出了什么问题,有人遇到过同样的问题吗?
【问题讨论】:
-
只做
if isinstance(value, dict): -
为我工作!我不确定你那边出了什么问题。你确定你的第一个方法是给
2? -
First 也为我返回 1。
-
@ChrisDoyle 实际上我已经尝试过了,但是它抛出了这个错误 TypeError: isinstance() arg 2 must be a type or tuple of types
-
@AnnaDmitrieva 你有没有在你的代码中的其他地方创建一个名为
dict的变量,因为它会覆盖字典的内置类型
标签: python python-3.x list dictionary types