Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python的嵌套数字列表中获取第一个偶数_Python_Python 3.x - Fatal编程技术网

从python的嵌套数字列表中获取第一个偶数

从python的嵌套数字列表中获取第一个偶数,python,python-3.x,Python,Python 3.x,我需要帮助找出这个密码。这是我的第一节编程课,下周我们有一个考试,我正试着做以前的考试 有一个类具有嵌套列表,我很难理解。它基本上说是转换(list of[list of int])->int 基本上给定一个列表,其中有一个偶数,在这个例子中,0是偶数,返回索引,如果没有偶数,我们返回-1 同时给出了三个例子 >>> first_even([[9, 1, 3], [2, 5, 7], [9, 9, 7, 2]]) 1 >>> first_even([[1, 3

我需要帮助找出这个密码。这是我的第一节编程课,下周我们有一个考试,我正试着做以前的考试

有一个类具有嵌套列表,我很难理解。它基本上说是转换
(list of[list of int])->int

基本上给定一个列表,其中有一个偶数,在这个例子中,0是偶数,返回索引,如果没有偶数,我们返回-1

同时给出了三个例子

>>> first_even([[9, 1, 3], [2, 5, 7], [9, 9, 7, 2]])
1
>>> first_even([[1, 3, 5], [7, 9], [1, 0]])
2
>>> first_even([[1, 3, 5]])
-1
我们在课堂上使用Python3,我有点想从哪里开始,但我知道这是错误的。但我会试一试

def first_even(L1):
    count = 0
    for i in range(L1):
       if L1[i] % 2 = 0:
           count += L1
    return count
我以为是这样的,但没有成功


如果你们能帮我提供一些提示或解决方案,这将对我很有帮助。

如果我理解正确,并且您希望返回至少包含一个偶数的第一个列表的索引:

In [1]: def first_even(nl):
   ...:     for i, l in enumerate(nl):
   ...:         if not all(x%2 for x in l):
   ...:             return i
   ...:     return -1
   ...: 

In [2]: first_even([[9, 1, 3], [2, 5, 7], [9, 9, 7, 2]])
Out[2]: 1

In [3]: first_even([[1, 3, 5], [7, 9], [1, 0]])
Out[3]: 2

In [4]: first_even([[1, 3, 5]])
Out[4]: -1
是一个方便的内置函数,如果是iterable,它将同时为您提供索引和项,因此您不需要处理丑陋的
范围(len(L1))
和索引


是另一个内置的。如果所有余数均为非零(因此计算结果为
True
),则列表不包含任何偶数。

如果我理解正确,并且您希望返回包含至少一个偶数的第一个列表的索引:

In [1]: def first_even(nl):
   ...:     for i, l in enumerate(nl):
   ...:         if not all(x%2 for x in l):
   ...:             return i
   ...:     return -1
   ...: 

In [2]: first_even([[9, 1, 3], [2, 5, 7], [9, 9, 7, 2]])
Out[2]: 1

In [3]: first_even([[1, 3, 5], [7, 9], [1, 0]])
Out[3]: 2

In [4]: first_even([[1, 3, 5]])
Out[4]: -1
是一个方便的内置函数,如果是iterable,它将同时为您提供索引和项,因此您不需要处理丑陋的
范围(len(L1))
和索引


是另一个内置的。如果所有余数都非零(因此计算结果为
True
),则列表中不包含任何偶数。

您的代码存在一些小问题:

  • L1[i]%2=0
    使用了错误的运算符
    =
    用于为变量赋值,而
    =
    用于相等

  • 您可能指的是
    range(len(L1))
    ,因为range需要一个整数

  • 最后,当您只想添加索引时,您正在将整个列表添加到计数中。这可以通过
    .index()
    实现,但这不适用于列表中的重复项。您可以使用
    枚举
    ,如下所示

如果您使用索引,
enumerate()
是您的功能:

def first_even(L):
    for x, y in enumerate(L):
        if any(z % 2 == 0 for z in y): # If any of the numbers in the subsists are even
            return x # Return the index. Function breaks
    return -1 # No even numbers found. Return -1

您的代码存在一些小问题:

  • L1[i]%2=0
    使用了错误的运算符
    =
    用于为变量赋值,而
    =
    用于相等

  • 您可能指的是
    range(len(L1))
    ,因为range需要一个整数

  • 最后,当您只想添加索引时,您正在将整个列表添加到计数中。这可以通过
    .index()
    实现,但这不适用于列表中的重复项。您可以使用
    枚举
    ,如下所示

如果您使用索引,
enumerate()
是您的功能:

def first_even(L):
    for x, y in enumerate(L):
        if any(z % 2 == 0 for z in y): # If any of the numbers in the subsists are even
            return x # Return the index. Function breaks
    return -1 # No even numbers found. Return -1

这就是我想到的

def first_even(L1):
    for aList in range(len(L1)):
        for anItem in range(len(L1[aList])):
           if L1[aList][anItem] % 2 == 0:
               return aList
    return -1
首先是修复。您需要将==用于“等于”,而“=”用于分配变量

L1[i] % 2 == 0
对于代码,以下是一些伪代码风格的想法:

Iterate through the list of lists (L1):
    Iterate through the list's (aList) items (anItem):
        if List[current list][current item] is even:
            Return the current list's index
Return -1 at this point, because if the code gets this far, an even number isn't here.

希望有帮助,如果您需要任何进一步的解释,我很乐意。

以下是我的想法

def first_even(L1):
    for aList in range(len(L1)):
        for anItem in range(len(L1[aList])):
           if L1[aList][anItem] % 2 == 0:
               return aList
    return -1
def first_even(L1):
    return ''.join('o' if all(n%2 for n in sl) else 'e' for sl in L1).find('e')
首先是修复。您需要将==用于“等于”,而“=”用于分配变量

L1[i] % 2 == 0
对于代码,以下是一些伪代码风格的想法:

Iterate through the list of lists (L1):
    Iterate through the list's (aList) items (anItem):
        if List[current list][current item] is even:
            Return the current list's index
Return -1 at this point, because if the code gets this far, an even number isn't here.

希望它能帮助你,如果你需要任何进一步的解释,我会很乐意的。

+1为了给它一个机会,请说出什么不起作用。您收到了一条与
范围(L1)
+1相关的错误消息,请告诉它什么不起作用。您收到了一条与
范围(L1)
相关的错误消息,我认为
任何(x%2==0表示l中的x)
的可读性更强一些。。。(就其检查内容而言)@JonClements可能有一点:)但你必须同意,从逻辑的角度来看,
所有到任何的转换都是微不足道的。比
下一步更可读(i代表i,v在枚举(a)中,如果有的话(el%2==0代表el in v)),-1)
无论如何……漂亮而简洁的代码,但我认为值得指出的是,range(len(x))在Python入门类中非常常用,因此熟悉它可能仍然很好。@JonClements感谢上帝,我不知道
next
有一个
default
参数:)谢谢!我认为
any(x%2==0表示l中的x)
更具可读性。。。(就其检查内容而言)@JonClements可能有一点:)但你必须同意,从逻辑的角度来看,
所有到任何的转换都是微不足道的。比
下一步更可读(i代表i,v在枚举(a)中,如果有的话(el%2==0代表el in v)),-1)
无论如何……漂亮而简洁的代码,但我认为值得指出的是,range(len(x))在Python入门类中非常常用,因此熟悉它可能仍然很好。@JonClements感谢上帝,我不知道
next
有一个
default
参数:)谢谢!我不理解你的代码,它不满足示例?对现有代码还有两个修复:因为L1是列表列表的列表,所以需要遍历每个子列表。如果您不使用enumerate(尽管enumerate很好),实现这一点的方法是使用一个循环,例如“for j in range(len(L1[i])”。在该内部循环中,您可以检查L1[i][j]%2==0,如果是,您可能只想返回i。似乎count变量最终只会计算偶数。我不理解您的代码,它不满足示例?现有代码还有两个修复:由于L1是列表列表,您需要遍历每个子列表。如果您没有使用enumerate(alth
def first_even(L1):
    return ''.join('o' if all(n%2 for n in sl) else 'e' for sl in L1).find('e')