使用迭代和集合重写列表(根据条件删除条目)

2024-09-29 23:31:47 发布

您现在位置:Python中文网/ 问答频道 /正文

如果任何子元素为空,我将尝试删除列表中的元素(此时列表的维度为7)。i、 e给出了一个更简单的示例列表:

'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

Tags: thein元素列表forifrangefred
1条回答
网友
1楼 · 发布于 2024-09-29 23:31:47

如何使用一些python内置allfilter

 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,则All返回true

相关问题 更多 >

    热门问题