我想创建一个按顺序从列表中打印数字的函数:
- 数字可被0和1整除
- 可以被素数整除的数字(所有数字除以2,然后数字可被3整除,等等)
我的代码中有两个函数。基本" max"功能和" prime_numbers"将素数打印到给定数字的函数,例如, prime_numbers(50)。两者都很好。
这是我的功能的一部分我遇到了问题:
if max(x) >= 2:
divisors = prime_numbers(maks(x))
for i in divisors:
sel = [x % i == 0 for x in i]
result.append([i for i in sequence if sequence in sel])
sequence = [i for i in sequence if i not in sequence]
对于循环是一团糟。我想要做的是在R中编写相同功能时所做的事情。
sel <- !as.logical(sequence %% i)
result <- c(result,sequence[sel])
sequence <- sequence[!sel]
&#39;序列&#39;已在代码中声明,它包含列表中大于或等于2的数字。 &#39;结果&#39;也被声明,它包含小于2的数字。
我想迭代除数(prime_numbers)和:
我比R更熟悉R而且比较容易。我尝试用列表推导做一些事情,但我不太了解它。
答案 0 :(得分:1)
应该这样做:
# result and sequence are defined higher
# and are lists
if max(x) >= 2:
divisors = prime_numbers(maks(x))
for i in divisors:
result += [x for x in sequence if x % i == 0]
作为你回答的评论我编辑了我的答案,这应该做的工作