在python中,如何编写一个函数来计算从n到m位置的列表中偶数元素的乘积?

在python中,如何编写一个函数来计算从n到m位置的列表中偶数元素的乘积?,python,list,Python,List,这是我已经尝试过的,但它只显示了两个值,我想看到该间隔内的所有偶数值,这可能吗 eL = [8, 2, 4, 5, 6, 10] m = [] n = [] for x in eL: if x % 2 == 0 and x == eL[0]: m.append(x) for x in eL: if x % 2 == 0 and x == eL[4]: n.append(x) print(m, n) 例如, 对于列表[8,2,4,5,6,10

这是我已经尝试过的,但它只显示了两个值,我想看到该间隔内的所有偶数值,这可能吗

eL = [8, 2, 4, 5, 6, 10]
m = []
n = []

for x in eL:
    if x % 2 == 0 and x == eL[0]:
        m.append(x)

for x in eL:
    if x % 2 == 0 and x == eL[4]:
        n.append(x)

print(m, n)
例如,
对于列表
[8,2,4,5,6,10]

n=1
m=3

结果应该是
2.4

对于
n=0
m=3

结果应该是
8.2.4

对于
n=2
m=4
应该是
4.6

以下是代码:

eL = [8, 2, 4, 5, 6, 10]
m = 1
n = 3
result = []
for x in eL:
    if x % 2 == 0 and (eL.index(x) >= m and eL.index(x) <= n):
        result.append(x)
print(result)

只需这样循环:
对于eL[m:n+1]中的x:

从n到m索引的偶数乘积:

>>> from functools import reduce
>>> from operator import mul
>>> n, m = 1, 4
>>> lst = [1, 2, 3, 4, 5]
>>> sublst = lst[n:m]
>>> evens = [i for i in sublst if i % 2 == 0]
>>> reduce(mul, evens, 1)
8

你能加上预期的输出吗?m和n在哪里起作用?问题和片段不清楚。例如,对于列表[8,2,4,5,6,10],对于n=1和m=3,结果应该是2·4;对于n=0,m=3,结果应该是8·2·4;对于n=2,m=4,结果应该是4·6。例如,对于列表[8,2,4,5,6],对于n=1和m=3,结果应该是2·4,对于n=0,m=3结果应该是8·2·4,对于n=2,m=4应该是4·6。哦,好的,谢谢你的信息。但请将此添加到问题中。@NiniNemsadze已更新,请检查。非常感谢@ppwater,如果x在eL中出现多次,您的代码将无法工作。为什么不直接跳过相关的部分呢
对于eL中的x[n:m+1]:#现在只需检查奇偶校验。
此外,如果只需要乘积,则可以执行乘法,而不是将数据追加到新列表中。
>>> from functools import reduce
>>> from operator import mul
>>> n, m = 1, 4
>>> lst = [1, 2, 3, 4, 5]
>>> sublst = lst[n:m]
>>> evens = [i for i in sublst if i % 2 == 0]
>>> reduce(mul, evens, 1)
8