0

这就是场景的样子:我试图从一个列表中获取最大元素,基于另一个元素,该元素基本上表示我需要搜索的元素中的索引。的长度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

有没有其他方法,或者我应该参考另一个模块?如果是的话,请你给我推荐一下。

4

3 回答 3

4

根据其他帖子,我不确定这是否是您所要求的,但假设您想要所有元素的最大值testfoo我所理解的),您可以这样做:

print max([test[i] for i in foo])
于 2013-02-25T03:14:57.633 回答
2

如果foo是一个总是有两个元素的列表,表示您要搜索的索引,您可以这样做:

sl = slice(*foo)
print(max(test[sl]))
于 2013-02-25T03:16:27.977 回答
0
test = [1,2,3,4,5,6,7,8]
foo = [1,4]
print max(test[foo[0]:foo[1]])
于 2013-02-25T03:18:18.370 回答