解构词解决方案

时间:2013-11-18 02:58:31

标签: python list while-loop

我有一个问题,我试图解决,但我被困在一个关键部分。

将n初始化为100.将数字初始化为从2到n的数字列表,但不包括n。   将结果作为空列表开始,只要数字包含任何数字,就重复以下操作。

  • 将数字中的第一个数字添加到结果的末尾。

  • 删除数字中可被整除的所有数字(除以时没有余数)您刚刚添加到结果中的数字。

结果有多长?

当n为100时,结果长度为25.

到目前为止,我已经理解设置n = 100和范围(2,100),结果= [] 并且结果将是result.append(numbers [])中的追加情况, 但是我有一个心理障碍,想出了删除数字中的每个数字的关键字,这些数字可以被添加到结果中的数字整除。

我知道这将是一个从一个列表到另一个列表并通过while循环工作的底层或模数解决方案。我还可以计算长度为len(结果)。任何帮助或指导将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您的新号码是newnumber,那么您只能从列表中选择不能被它整除的元素:

results = [x for x in results if x%newnumber!=0]
results.append(newnumber)

此后添加newnumber因为它更合理(否则,它本身将被过滤删除)。

如果你坚持按顺序这样做,那就有点丑陋了:

results.append(newnumber)
results = [results[i] for i in range(0,len(results)-1) if results[i]%newnumber!=0]