Python 列表中奇数索引处的返回值,质询
嘿,我有一个简单的挑战 我需要返回给定数组中奇数索引位置处的所有值,因此举个例子 in:t=[3,5,2,6,2] 返回p=[5,6] 问题是当我输入代码时,它甚至没有在我的IDE上编译! 错误是 TypeError:“列表”对象不可调用 请帮忙 我的代码是:Python 列表中奇数索引处的返回值,质询,python,Python,嘿,我有一个简单的挑战 我需要返回给定数组中奇数索引位置处的所有值,因此举个例子 in:t=[3,5,2,6,2] 返回p=[5,6] 问题是当我输入代码时,它甚至没有在我的IDE上编译! 错误是 TypeError:“列表”对象不可调用 请帮忙 我的代码是: def Odds(items): count = 0 for i in items: if count%2!=0: odd_items = [items[count]]
def Odds(items):
count = 0
for i in items:
if count%2!=0:
odd_items = [items[count]]
count=count+1
return odd_items
def what(Odds):
for i in Odds(0,len(Odds)):
print (i)
Odds(items=[4,4,4,4])
what(Odds)
你的问题是:
def what(Odds):
for i in Odds(0,len(Odds)):
print (i)
Odds(items=[4,4,4,4])
what(Odds)
赔率是一个函数,而不是一个对象。不能对函数进行迭代,除非它具有类似生成器的迭代器。在本例中,您正试图在常规函数上循环
通过将赔率函数的结果分配给一个列表,并将该列表传递给“what”函数,可以非常容易地解决这个问题
odd_list = Odds([4,4,4,4])
what(odd_list)
def what(odd_list):
for odd_index in odd_list:
print(odd_index)
使用*解压列表,然后尝试调试。
赔率(0,len(赔率))
-您对两个不同的东西使用相同的标识符。这不起作用您正在对调用的另一个函数的函数名和参数使用相同的变量赔率(items=[4,4,4,4])
,但您没有保存返回的列表对象。您需要保存结果,然后将结果传递到what()
。其他人提到您使用同一名称两次,我认为重要的是要补充一点,这是一个坏名称。变量和函数名称通常应遵循带有下划线的小写形式。