如何检查对象是否为字符串类型的列表 - Python

4

假设我有以下对象。

    d = ["foo1", "foo2", "foo3", "foo4"]

    c = 1

    a = ["foo1", 6]

我想检查对象是否为特定类型的列表。如果我想检查d是否为列表,并且该列表包含字符串,我该怎么做?

d应该通过检查,但c和a应该未通过检查。


特别是list?(list 是 Python 中的一种数据类型,表示列表。) "(foo",“bar”,“baz”)应该也会失败吗?或者甚至是一个str,例如,“foobar”,它从技术上讲也可以进行迭代? - user44484
1
我认为你应该看一下这个SO问题,因为在Python中检查类型通常不是你想要做的事情。 - user44484
1个回答

14
 d = ["foo1", "foo2", "foo3", "foo4"]
 print isinstance(d,list) and all(isinstance(x,str) for x in d)
 True
 d = ["foo1", "foo2", 4, "foo4"]
 print isinstance(d,list) and all(isinstance(x,str) for x in d)
 False
如果d是一个列表,并且d中的每个元素都是字符串,它将返回True。 您可以使用isinstance检查int、dict等。

如果您想将Unicode计算为字符串,应该真正使用basestring。 - Joran Beasley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接