我在这里遇到麻烦,需要你的帮助。
我想返回在特定索引处找到的项目。我不知道该项目是什么,只知道索引。我发现的所有内容都与我需要的相反,即使用myList.index(item)
查找已知项目的索引。
段:
new_lst = x
new_lst.sort()
leng = len(new_lst).....
elif leng > 1 and leng % 2 == 0:
a = (leng / 2) #or float 2.0
b = a - 1
c = new_lst.index(a) #The problem area
d = new_lst.index(b) #The problem area
med = (c + d) / 2.0
return med ......
如果a
位于new_lst
,则上述内容才会返回。否则它会出错。我想得到中间的两个数字(如果列表是偶数),将它们加在一起然后平均它们。
示例:new_lst = [4,3,8,8]
。得到em,排序em,然后应该取两个数字(a
& b
,索引1和2),添加它们并平均:(4 + 8) / 2
等于6.我的代码将2分配给a
,在列表中查找并返回错误:2不在new_lst
中。不是我想要的。
答案 0 :(得分:2)
使用方括号引用列表中的项目,如此
c = new_lst[a]
d = new_lst[b]
答案 1 :(得分:0)
您不需要list.index
功能 - 这是用于查找列表中项目的位置。要在某个位置查找项目,您应该使用切片(在其他语言中,有时称为“索引”,这可能会使您感到困惑)。从迭代中切出单个元素如下所示:lst[index]
。
>>> new_lst = [4, 3, 8, 8]
>>> new_lst.sort()
>>> new_lst
[3, 4, 8, 8]
>>> if len(new_lst) % 2 == 0:
a = new_lst[len(new_lst)//2-1]
b = new_lst[len(new_lst)//2]
print((a+b)/2)
6.0
答案 2 :(得分:0)