Python 如何在此列表中使用if

Python 如何在此列表中使用if,python,Python,对于数字数组,我必须使用列表理解来查找以下元素: 可被6整除 它们的位置也可以被6 例如,如果输入为: 6 12 8 9 1 18 输出应为: 18 这是我已经做过的 print(list(map(int, input().split()))[5::6]) 我不知道如何找到可被6整除的数字,这就是你可以做到的: [el for idx, el in enumerate(lst) if idx % 6 == 0 and el % 6 == 0] 请注意,索引通常从0开始,因此正确答案是6,

对于数字数组,我必须使用列表理解来查找以下元素:

  • 可被
    6整除

  • 它们的位置也可以被
    6

  • 例如,如果输入为:

    6 12 8 9 1 18
    
    输出应为:

    18
    
    这是我已经做过的

    print(list(map(int, input().split()))[5::6])
    

    我不知道如何找到可被
    6
    整除的数字,这就是你可以做到的:

    [el for idx, el in enumerate(lst) if idx % 6 == 0 and el % 6 == 0]
    
    请注意,索引通常从
    0
    开始,因此正确答案是
    6
    ,而不是
    18
    。如果要从
    1
    索引,请调整以上内容:

    [el for idx, el in enumerate(lst, 1) if idx % 6 == 0 and el % 6 == 0]
    

    您可以使用
    %
    (mod)来获得可以除以6的数字。简言之:

    # my_list is your input list
    [x for x in my_list[5::6] if x % 6 == 0]
    

    如果我正确理解您的问题,此代码适用于您:

    lst = [6, 12, 8, 9, 1, 18]
    [n for i,n in enumerate(lst,1) if not n%6 if not i%6]
    # output: [18]
    
    或者,如果使用
    input()


    你能试一下吗

    假设您的原始列表是
    original\u list

    new_list = [original_list[i] for i in range(len(original_list)) if i % 6 == 0 and original_list[I] % 6 == 0]
    

    l=[6,10,8,9,1,18,12]

    x=[l[i]表示范围内的i(len(l)),如果l[i]%6==0和i%6==0]

    打印(x)

    作品:6和12

    这应该起作用:

    lst = [6,12,8,9,1,18]
    answer = [num for num in lst if num %6 ==0 and lst.index(num)%6 == 0]
    
    Output: 6
    

    注意:答案不是18,因为18的索引是5,因为在python中索引是基于零的。因此,只有第一个数字符合这两个标准,18的索引将是5,因为列表索引从0开始。 请尝试以下代码:

    lst = [6,12,8,9,1,18,24]
    print(" ".join([str(num) for num in lst if num %6 ==0 and lst.index(num)%6 == 0]))
    

    它将返回6和24。你是说位置吗?原因索引5不能被6整除我不认为18的索引可以被6整除
    [n对于lst中的n[::6]如果不是n%6]
    当您可以首先将其切片到适当的索引时,为什么要迭代整个列表?似乎效率不高me@Chris_Rands这种微观优化完全不值得。我认为对于大的列表和大的可除值,性能增益可能是巨大的,因为切片是O(k),其中k是切片长度,而迭代是O(n)(我同意它的可读性稍差)
    lst = [6,12,8,9,1,18,24]
    print(" ".join([str(num) for num in lst if num %6 ==0 and lst.index(num)%6 == 0]))