我是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)是元组,但出现错误。你知道为什么吗?
答案 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