2

申し訳ありませんが、私の質問をタイトルで説明するのは少し難しいですが、基本的には、ポジションのリストがあり、各ポジションを関数に渡して、ポジションに関するデータを提供する番号を取得できます。私がやりたいことは、リスト内のデータ値が最も低い位置を返すことですが、これを行う方法が見つからないようです。

少しの疑似コードが役立つはずです:

def posfunc(self,pos):
    x,y = pos
    return x**2-y

def minpos(self)
    returns position with the least x**2-y value
4

2 に答える 2

7

Python はとてもクールです :D:

min(positions, key=posfunc)

組み込みのドキュメントから:

>>> help(min)
min(...)
    min(iterable[, key=func]) -> value
    min(a, b, c, ...[, key=func]) -> value

    With a single iterable argument, return its smallest item.
    With two or more arguments, return the smallest argument.

そしてラムダはここで言及する価値があります:

min(positions, key=lambda x: x[0]**2 - x[1])

ほぼ同じですが、他の場所で使用していない場合は、より読みやすいと思いますposfunc

于 2013-01-13T16:05:02.403 に答える
3

基本的に min() 関数を使用できます

pos = [(234, 4365), (234, 22346), (2342, 674)]

def posfunc(pos):
    x,y = pos
    return x**2-y

min(pos, key=posfunc)
于 2013-01-13T16:12:25.067 に答える