不删除空值(Python)

2024-10-04 01:27:20 发布

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

为了处理多个CSV文件的内容,我必须从字符串列表元素中过滤几个字符,尤其是空值。为此,我尝试了几种网络解决方案。其中之一是以下功能:

def removeNull(rawString):
    l = filter("\u0000", list(rawString))
    newString = ''.join(l)
    printUtil.printAll(newString, "\n")
    return newString

但是,它总是给我TypeError: 'str' object is not callable,终止程序。更复杂的解决方案没有给我一个错误,但它们完全没有改变任何东西,空值仍然存在。在

此外,如果我将\u0000与除None之外的任何其他值交换(这不会导致任何更改),则会得到相同的错误消息。在

希望有人能帮我解决这个问题,因为我在经历了4到5个小时的尝试和错误之后已经没有了想法。在

感谢您的回答和建议!在

解决问题:

错误消息源于我使用"\u0000"作为内置过滤器函数的参数。这一特定问题的两个有效解决方案侧重于传递必要的函数:

^{pr2}$

或者

l = filter(lambda x:ord(x) != 0, list(rawString))

Tags: 文件csv函数字符串消息内容列表错误
2条回答

filter期望第一个参数是一个函数(或者更准确地说是一个callable)。然后迭代第二个参数,将每个参数传递给函数。如果函数返回类似False的值,则在输出中跳过该值。在

你可以试试:

l = filter(lambda x: x != '\u0000',rawString)
l = filter(lambda x:ord(x) != 0, list(rawString))

应该工作得更好

让它更透明

^{pr2}$

相关问题 更多 >