首页 > 解决方案 > 从列表中删除元素并在同一语句中打印新列表

问题描述

我正在使用该.remove()函数从列表中删除一个元素,然后我想直接将此新列表用于另一个函数,例如该print()函数。当我这样做时,我得到以下信息:

print([1, 2, 3])
# [1, 2, 3]

print([1, 2, 3].remove(2))
# None

因此,如果我想print()在 Inplace 函数之后直接使用另一个函数(例如),.remove()那么矛盾的是,我只能这样做:

print([1, 2, 3])
# [1, 2, 3]

x = [1, 2, 3]
x.remove(2)
print(x)
# [1, 3]

有没有更好的方法来代替编写这个额外的源代码?

显然,同样的问题适用于所有 Inplace 函数作为我猜的其他函数的属性。

标签: pythonin-place

解决方案


您可以为 list remove 创建一个包装函数并调用该函数,而不是直接调用 list.remove。

def list_remove(l, elem):
    l.remove(elem)
    return l

print (list_remove(l, elem))

免责声明:我真的不建议您这样做。但是,这只是我想到的一种方法。

我真的不认为书面list.remove()print单独的陈述有问题。


推荐阅读