如果任何子元素为空,我试图删除列表中的元素(目前列表的维度为7)。即给出这个更简单的示例列表:
'car','doug',''
dede,eli,fred
'law', '','frank'
'','roger','w'
alex,berk,carl
删除任何一行"空白" (或某些时候的另一种情况)
dede,eli,fred
alex,berk, carl
到目前为止,我已经为这个效果做了一些事情(它有效!)我的列表中有7个使用集合的元素
list1=[item for item in list1 if item [0]!= '']
list1=[item for item in list1 if item [1]!= '']
list1=[item for item in list1 if item [2]!= '']
list1=[item for item in list1 if item [3]!= '']
list1=[item for item in list1 if item [4]!= '']
list1=[item for item in list1 if item [5]!= '']
list1=[item for item in list1 if item [6]!= '']
我尝试过类似以下的内容。我不确定如何在此上下文中将列表正确传递给函数 - 但此处x是列表
def empty(x):
x=list(x)
# the range should be updated to the column length here
# i've left it at 7 for illustration
for i in range(7):
x=x[for item in x if item [i]!='']
return x
答案 0 :(得分:3)
如何使用一些python builtins all和filter:
x = [
['car','doug',''],
['dede', 'eli', 'fred'],
['law', '','frank'],
['','roger','w'],
['alex', 'berk' , 'carl']
]
# python 2.7
print filter(all, x)
# python 3.5
print(list(filter(all, x)))
- [['dede', 'eli', 'fred'], ['alex', 'berk', 'carl']]
过滤器评估预设,只有在真实时才返回
如果迭代器中的所有项都为真,则全部返回true