我不确定是否可以说清楚,但会尝试。

我在python中有一个元组,如下所示(请参见下面的代码)。在检查过程中,我会维护一个满足特定条件的计数器(我们称其为“n”)和“弹出”项。

现在,当然,当我弹出第一个项目时,所有编号都出错了,我该如何优雅地做我想做的事情,同时只动态删除一个元组的某些项?

for x in tupleX:
  n=0
  if (condition):
     tupleX.pop(n)
  n=n+1

最佳答案

DSM所述,tuple是不可变的,但是即使对于列表,更优雅的解决方案是使用filter:

tupleX = filter(str.isdigit, tupleX)

或者,如果condition不是一个函数,请使用一个理解:
tupleX = [x for x in tupleX if x > 5]

如果确实需要tupleX作为元组,请使用生成器表达式并将其传递给tuple:
tupleX = tuple(x for x in tupleX if condition)

关于python - 从python元组中弹出/删除项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21682804/

10-14 05:12