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

他の投稿に基づいて、これがあなたが求めていたものであるかどうかはわかりませんがtest、のインデックスを持つすべての要素の最大値が必要であると仮定するとfoo(これは私が理解したものです)、これを行うことができます:

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

foo検索したい間のインデックスを示す常に2つの要素を持つリストの場合、これを行うことができます:

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 に答える