gpt4 book ai didi

Python - 从没有 numPy 的矩阵中删除列

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:41 26 4
gpt4 key购买 nike

这是我在这里的第一个问题。问题很简单——

# this removes the top list from the list of lists
triangle = [
[3, 0, 0],
[2, 0, 0],
[1, 0, 0]]
del triangle[0]

我想有一个类似的简单方法来删除“列”。我当然可以使用 for 循环来做到这一点,但是是否有等同于

del triangle[0]

谢谢

最佳答案

如果您想在就地执行此操作而不复制整个列表,则类似

all(map(lambda x: x.pop(which_column), triangle))

编辑。是的,如果列中有 0,它将不起作用,只需使用任何其他累加器函数

sum(map(lambda x: x.pop(which_column), triangle))

对于 python 2,不需要 map 不是迭代器累加器:

map(lambda x: x.pop(1), triangle)

作为副作用,这将返回您可以使用的已删除列

deleted_column = list(map(lambda x: x.pop(which_column), triangle))

(不需要 python 2 list() 包装器)

更短的形式是

sum(i.pop(which_column) for i in triangle)

deleted_column = [i.pop(which_column) for i in triangle]

虽然我不确定它是否符合“没有 for 循环”的条件

附言在官方 Python 文档中,他们使用 0-lenqth deque 来使用迭代器,如下所示:

collections.deque(map(lambda x: x.pop(which_column), triangle), maxlen=0)

我不知道它是否比sum()更好,但它可以用于非数字数据

关于Python - 从没有 numPy 的矩阵中删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11280388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com