簡體   English   中英

如何制作一個 function,它返回列表 n 中參數 n1 或 n2 的倍數的所有整數

[英]How to make a function that returns all integers that are multiples of either parameters n1 or n2 within the list n

3個參數:整數列表(n),integer數(n1),另一個integer數(n2),不包括0

我有:

def hw(n, n1, n2):
    multiples = []
    for i in n:
        if i % n1 == 0 and i % n2 == 0:
            return multiples

這是錯誤的,甚至沒有返回任何東西。 不過,我不確定我哪里出錯了? 測試腳本:

sol= hw(np.arange(20), 3, 4)
assert sol==[3, 4, 6, 8, 9, 12, 15, 16, 18]

使用return您只需在第一次迭代中從 function 返回,您需要append到列表並在循環外返回列表。

def hw(n, n1, n2):
    multiples = []
    for i in n:
        if i % n1 == 0 or i % n2 == 0:
            multiples.append(i)
    return multiples

此外and如果您需要34的倍數,請使用or代替。

這是使用列表理解的方法:

def fun(n, n1, n2):
    multiples = [i for i in n if i % n1 == 0 and i % n2 == 0]
    return multiples

res = fun([18, 23, 21, 42, 3], 3, 7)
print(res)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM