这是场景的样子:
我试图从列表中获取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
还有其他方式,还是应该引用另一个模块? 如果是的话,可以请你向我推荐。
答案 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]])