假设我有一个像这样的字符串列表列表:
现在我想使用一个伪代码中的
l=[['a','kl_hg', 'FOO'],['b', 'kl_c', 'po']]
现在我想使用一个伪代码中的
if
命令,如下所示:if allElementsOf(l).isString():
#do something
我从这个问题中学习到如何检查单个变量是否为字符串。对于单个列表,我可以这样做:
dummyL = ['a','kl_hg', 'FOO']
if all(isinstance(s, basestring) for s in dummyL):
#do something
对于我的实际列表l
,我可以这样做:
if all(isinstance(el, basestring) for sl in l for el in sl):
#do something
这是正确的操作方法吗?如果需要处理大量数据,是否有更快捷的解决方案?
O(m*n)
呢?你需要检查列表中每个列表中的每个元素!all
已经提供了一种简便方法(即它找到的第一个不是字符串的元素将结束循环)。 - jonrsharpechain.from_iterable(l)
可能会更快一些,但复杂度不会改变。 - Padraic Cunningham