返回列表列表,其中包含元组中元素位置的索引

时间:2018-01-31 19:53:51

标签: python tuples

我是python的初学者,我正在做一个需要使用带参数的函数的例子。

我想创建一个功能" findElement"接收元素和元组并返回一个列表,其中包含元素在元组中的位置的索引。为此,我试图创建一个像:

这样的函数
 def findElement(elm=1, tup1= (1,2,3,4,1)):

   for i in tup1:
    if i == elm:
        print(i)

" 1"是元素,(1,2,3,4,1)是元组,但出现错误。你知道为什么吗?

2 个答案:

答案 0 :(得分:0)

以下几种方法,按我的偏好顺序排列。第二个使用generator

列表理解:

tup = (1, 2, 3, 4, 1)

[x for x in range(len(tup)) if tup[x]==1]  # [0, 4]

带发电机的功能方法:

def findel(el, tup):
    for i in range(len(tup)):
        if tup[i] == el:
            yield i

list(findel(1, (1, 2, 3, 4, 1)))  # [0, 4]

没有发电机的功能方法:

def findel(el, tup):
    result = []
    for i in range(len(tup)):
        if tup[i] == el:
            result.append(i)
    return result

findel(1, (1, 2, 3, 4, 1))  # [0, 4]

答案 1 :(得分:0)

我会使用for i in range(len(tup1)):来获取当前读取元素的索引。

def findElement(elm=1, tup1=(1,2,3,4,1)):
   """
   Return the indexes where the element is present
   """

   # We initiate the variable that will contain the list of index
   result = [] 

   # i will give us here the index of currently read element (tup1)
   for i in range(len(tup1)):
      if tup1[i] == elm:
          result.append(i)

   return result