Python 为什么我在检查列表项时总是出错

Python 为什么我在检查列表项时总是出错,python,list,types,set,boolean,Python,List,Types,Set,Boolean,我将列表中找到的一组类型放在一起,然后将其转换为列表 s = set() for i in ['hungry', 'delicious', 'desserts']: s.add(type(i)) l = list(s) 现在让我们假设我想检查l中的第一个元素是否表示“string”。当我请求打印(l[0])时,我得到作为输出 但是当我问ifl[0]==”,我得到了False。当我问ifl[0]==“str”时也是这样 我需要在代码中更改什么才能使其显示True?只需删除以下引号: l

我将列表中找到的一组类型放在一起,然后将其转换为列表

s = set() 
for i in ['hungry', 'delicious', 'desserts']:
    s.add(type(i))
l = list(s)
现在让我们假设我想检查
l
中的第一个元素是否表示“string”。当我请求
打印(l[0])
时,我得到
作为输出

但是当我问if
l[0]==”
,我得到了
False
。当我问if
l[0]==“str”
时也是这样


我需要在代码中更改什么才能使其显示
True

只需删除以下引号:

l[0] == str

同样有效<代码>'str'只是另一个字符串,不是一种类型。

只需删除下面的引号:

l[0] == str

同样有效
'str'
只是另一个字符串,不是类型。

您正在查找
isinstance
。您正在将一个类与表示该类的字符串进行比较。
s
包含类型,
l
也包含类型。因此,您需要检查
l[0]==str
(类,不是字符串)
l[0]
是否不是字符串对象(它是
类型
对象)。打印时,将调用其
\uuuu str()\uuuu
方法,并返回字符串
“”
。例如,您可以测试
l[0]==str
,但如果您仍然可以访问提取类型的原始对象(例如
“饥饿”
),则可以使用
isinstance(foo,str)
测试
foo
是否为字符串。您正在查找
isinstance
。您正在将一个类与表示该类的字符串进行比较。
s
包含类型,
l
也包含类型。因此,您需要检查
l[0]==str
(类,不是字符串)
l[0]
是否不是字符串对象(它是
类型
对象)。打印时,将调用其
\uuuu str()\uuuu
方法,并返回字符串
“”
。例如,您可以测试
l[0]==str
,但是如果您仍然可以访问提取类型的原始对象(例如
“饥饿”
),则可以使用
isinstance(foo,str)
测试
foo
是否为字符串。