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]))