如何使用2个参数编写函数?

时间:2019-03-08 00:05:06

标签: python function

我需要编写一个搜索列表以查找给定项目的匹配项的函数。该函数带有两个参数:列表和目标项目。它返回两个值:布尔值,指示列表中是否存在该项目;如果该项目确实存在,则为匹配项目的索引。

3 个答案:

答案 0 :(得分:1)

  

如何使用2个参数编写函数?

那很简单:

def aFunction(theList, theTargetItem):
    return (True, 2)

:
(aBooleanValue, theIndex) = aFunction([1, 2, 3, 4], 3)

您显然必须充实函数(a)力学,以使其符合规范,但我给出的是框架您可以在其上进行构建。

就此而言,您需要遍历列表(保持索引更新),并在找到要查找的值时返回索引。如果您找不到在循环结束之前找不到该值,请返回一个-1之类的小数值。

我不会为您做那么多的事情,因为它几乎可以肯定是课堂工作(b),但我会为您指明正确的方向。像for i in range(7): print(i)这样的语句是如何遍历06之间的值。表达式len(x)将为您提供集合x的长度。 x[y]是您引用集合y+1的第x个元素的方式。


(a)目前,它可用于我使用的非常有限的测试数据,但您可能想在此基础上进行扩展:-)


(b)并且您将自己做些事,并得到一些指导,从而进一步学习 far 。这也是为什么我不理会更高级的Python东西的原因,因为我假设这里的目的是学习如何编码,而不是学习如何编写惯用的Python。

如果您真的想要后者,则可以在以下程序中使用类似searchList的功能:

def searchList(theList, theItem):
    try:
        theIndex = theList.index(theItem)
    except:
        return (False, None)
    return (True, theIndex)

mylist = [x + 1for x in range(10)]
print(mylist)
print(searchList(mylist, 2))
print(searchList(mylist, 7))
print(searchList(mylist, 99))

这将按预期输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(True, 1)
(True, 6)
(False, None)

但是我不认为这适合上初学者课。

答案 1 :(得分:0)

ls, item = input("Enter comma-separated values: ").split(","), input('Enter an item: ')

def slist(ls,item):
    try: ind,inls = ls.index(item), True
    except: ind,inls = None, False
    return inls,ind

inls,ind = slist(ls,item)
print('In list: %s' % inls,'\nIndex: %s' % ind)

答案 2 :(得分:0)

只需使用in运算符就可以验证列表中是否存在所需的项目。然后,使用list.index(item)获取该项目的索引。

def function_name(l,item):
  if item in l:
    return True, l.index(item)
  else:
    return False, -1