另一个列表中的列表中的最大值

时间:2013-02-25 03:11:34

标签: python arrays

这是场景的样子: 我试图从列表中获取max元素,基于另一个元素,它基本上代表我需要搜索的元素中的索引。 foo的长度可以更改。但测试的长度不会改变。

>>> test = [1,2,3,4,5,6,7,8]
>>> foo = [1,4]
>>> print max(test[foo[1]])

这有效..

但是,当我想要做的时候

>>> print max(test[foo])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not list

还有其他方式,还是应该引用另一个模块? 如果是的话,可以请你向我推荐。

3 个答案:

答案 0 :(得分:4)

基于其他帖子,我不确定这是否是您所要求的,但假设您希望test中所有元素的最大值为foo(其中是我所理解的),你可以这样做:

print max([test[i] for i in foo])

答案 1 :(得分:2)

如果foo是一个总是包含两个元素的列表,表示您要搜索的索引,则可以执行以下操作:

sl = slice(*foo)
print(max(test[sl]))

答案 2 :(得分:0)

test = [1,2,3,4,5,6,7,8]
foo = [1,4]
print max(test[foo[0]:foo[1]])