相关疑难解决方法(0)

在Python中从序列中删除项目的优雅方法?

当我在Python中编写代码时,我经常需要根据某些条件从列表或其他序列类型中删除项目.我还没有找到优雅高效的解决方案,因为从当前正在迭代的列表中删除项目是不好的.例如,你不能这样做:

for name in names:
    if name[-5:] == 'Smith':
        names.remove(name)
Run Code Online (Sandbox Code Playgroud)

我通常最终做这样的事情:

toremove = []
for name in names:
    if name[-5:] == 'Smith':
        toremove.append(name)
for name in toremove:
    names.remove(name)
del toremove
Run Code Online (Sandbox Code Playgroud)

这是无效的,相当丑陋和可能有错误(它如何处理多个'John Smith'条目?).有没有人有更优雅的解决方案,或者至少更有效?

那个与词典一起工作的人怎么样?

python optimization set series

55
推荐指数
4
解决办法
4万
查看次数

Python删除数组中的所有负值

删除数组中负面元素的最有效方法是什么?我已尝试numpy.delete表单的数组和代码中删除所有特定值x[x != i].

对于:

import numpy as np
x = np.array([-2, -1.4, -1.1, 0, 1.2, 2.2, 3.1, 4.4, 8.3, 9.9, 10, 14, 16.2])
Run Code Online (Sandbox Code Playgroud)

我想最终得到一个数组:

[0, 1.2, 2.2, 3.1, 4.4, 8.3, 9.9, 10, 14, 16.2]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

10
推荐指数
3
解决办法
2万
查看次数

标签 统计

python ×2

arrays ×1

numpy ×1

optimization ×1

series ×1

set ×1