如何修复此功能?

时间:2019-02-09 01:01:10

标签: python list tuples

我需要编写一个函数,该函数将元组列表,元组的数量和两个数字作为输入。如果我们列表中的一个元组中存在两个给定的数字,则此函数应返回True

例如:ma_fonction(l,n,i,j)

  • l:元组列表
  • ij0n-1i != j之间的两个数字

我尝试了以下代码:

def ma_fonction(l,n,i,j):
    checker = False
    for item in l :

        if ( i in item and j in item ):
            cheker = True
            return True 
        else: 
            return False

ma_fonction([(0,1), (5,2), (4,3)], 6, 2, 5)

但是它不起作用。我应该添加或更改什么?


我尝试了此操作(不知何故我没有复制我的所有工作)
这是我的工作:

def ma_fonction(l,n,i,j):
    checker = False
    if((i!=j )and (0<=i<=n-1 )and( 0<=j<=n-1) ):
        for item in l :

            if ( i in item and j in item ):
                cheker=True
                return True 
            else: 
                return False

3 个答案:

答案 0 :(得分:1)

将功能更改为此:

list2 = ['I am mike', 'I don't go to party', 'I am sam']

phrase1= 'I would like to go to a party'
phrase2= 'I am sam'

您遍历所有元组,并且如果i和j在元组中,则返回True。 如果遍历所有元组并且没有找到匹配项,则可以确定我们可以返回False。

此实现实际上不需要参数n

答案 1 :(得分:1)

逻辑是对于此列表中的每个元组,检查它是否包含数字i和j。如果是,则返回True;如果否,请继续检查下一个元组。一旦检查完每个元组,结果就是没有满意的元组,然后返回False。

<div class="parent box">
  <div class="box hideDiv">
  </div>
</div>

答案 2 :(得分:0)

这应该有效:

def ma_fonction(l,n,i,j):
    for item in l :
        if ( i in item and j in item ):
            return True 
    return False

您的解决方案不起作用的原因是因为您要在列表的第一个与i和j不匹配的元素上返回False。您需要做的是,当且仅当您查看了列表的所有元素并且找不到匹配项时,才返回False