首页 文章

Python将Partial Lambda应用于元组列表

提问于
浏览
0

我有一个元组列表,每个元组有大约20个元素 . 基本数据结构如下:

data[1]
>>('3824813',
    '310202',
    'AEOIME',
    'UEJNAJ',
    ...
    )

其中一些元组包含未定义的字符串,在这种情况下,我想要排除包含元组 . 所以我使用 filter 之类的:

data2 = list(filter(lambda t: '' not in t, data))

现在情况稍微复杂一点,因为我现在知道元组的第15个元素仍应保留,即使它是空白的 .

My question is: 如果除了第15个元素之外的任何元素中包含 '' ,如何编写一个排除列表中所有元组的过滤器?

我唯一能想到的是做一个单独的过滤器来找到空的第15个元素,并在我进行重度过滤之后将它们组合回来 . 对我来说,这似乎过于苛刻,但那只是我 . 无论哪种方式,让我知道这里有什么用,谢谢 .

1 回答

  • 1

    你可以做的一件事就是写一个像这样的过滤函数:

    def keepTuple(tpl):
        for idx, string in enumerate(tpl):
           if idx == 14 and string == "":
               continue
           elif string == "":
               return False
        return True
    

    然后,如果我正确理解您的问题,您应该可以使用它来过滤您的列表:

    data2 = list(filter(keepTuple, data))
    

    但是,我不太了解你的数据 . 你有没有超过第15个元素为空的元组或者元组中只有一个字符串为空的元组吗?

相关问题