1

Pythonでプログラミングしようとしています

次のようなデータを保持する配列があります

[A,20,偽] [B,1,偽] [C, 8,偽]

最小の中間番号を持つ要素を取得して配列をループできるようにしたいので、たとえば、次に処理する要素は、最小の番号 1 を持つ B になります。その後、これは削除され、次に使用される要素は C になります。これは、20 のうち 8 8 が最小の数であるためです...

これを明確にしたことを願っています

助けてください

ありがとうございました

4

3 に答える 3

5
>>> myList = [["A", 20, False], ["B", 1, False], ["C", 8, False]]
>>> smallest = min(myList, key=lambda L: L[1])
>>> smallest
['B', 1, False]

その要素を使用して並べ替えたい場合は、次のようにして同じことができますsorted

>>> sorted(myList, key=lambda L: L[1])
[['B', 1, False], ['C', 8, False], ['A', 20, False]]
于 2011-03-14T22:27:46.060 に答える
2

これにより、番号が最も小さいアイテムが得られます。

from operator import itemgetter

next = min(array,key=itemgetter(1))[0]

2 番目の項目をキーとして使用して、リストを並べ替えることもできます。

array.sort(array,key=itemgetter(1))
于 2011-03-14T22:28:29.380 に答える
0

最初にリストをソートしてから、あなたが言ったようにループします:

somelist = [[A,20,False] [B,1,False] [C, 8, False]]
somelist.sort(lambda x, y: cmp(x[1], y[1]))

for smallest in somelist:
    # do stuff with the smallest member
于 2011-03-14T22:27:47.463 に答える