预备知识:any()
Any(x)判断x对象是否为空对象,如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true
请看https://docs.python.org/上的定义:
any(iterable)
如果 iterable 的任一元素为真则返回 True。 如果所有迭代器为空,返回 False。 等价于:
def any(iterable):
for element in iterable:
if element:
return True
return False
so :
a =[False, False, False]
>>> y = any(a)
>>> y
False
so :
>>> any((0,False,''))
False
>>> any([])
False
so 只要有一个不是false,那就是true :
>>> a =[False, True , False,False,False,False]
>>> any(a)
True
>>>
so :
>>> b = [0,0,0,0,0,0,'']
>>> any(b)
False
注意,'0’不是空对象哦。
>>> b =[0,0,0,'0',0,0,'']
>>> any(b)
True
>>>
预备知识,str
str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式。
>>> a_list = [12, '-23.1', 'Python']
>>> str(a_list) #列表转换为字符串
"[12, '-23.1', 'Python']"
>>>
好了,开始主菜:
Check if any String is empty in list
# initialize list
test_list = ['gfg', 'is', 'best', '', 'for', 'geeks']
# printing original list
print("The original list : " + str(test_list))
# Check if any String is empty in list
# using len() + any()
res = any(len(ele) == 0 for ele in test_list)
# printing result
print("Is any string empty in list? : " + str(res))
Output :
The original list : ['gfg', 'is', 'best', '', 'for', 'geeks']
Is any string empty in list? : True
如何将一个列表中的空值都剔除呢,很简单:
>>> xlist = ['','','a','b','c','','d']
>>> x = [sub for sub in xlist if sub]
>>> x
['a', 'b', 'c', 'd']
>>>
First Non-Empty String in list
# initializing list
test_list = ["", "", "Akshat", "Nikhil"]
# printing original list
print("The original list : " + str(test_list))
# using next() + list comprehension
# First Non-Empty String in list
res = next(sub for sub in test_list if sub)
# printing result
print("The first non empty string is : " + str(res))