Pythonでプログラミングしようとしています
次のようなデータを保持する配列があります
[A,20,偽] [B,1,偽] [C, 8,偽]
最小の中間番号を持つ要素を取得して配列をループできるようにしたいので、たとえば、次に処理する要素は、最小の番号 1 を持つ B になります。その後、これは削除され、次に使用される要素は C になります。これは、20 のうち 8 8 が最小の数であるためです...
これを明確にしたことを願っています
助けてください
ありがとうございました
>>> 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]]
これにより、番号が最も小さいアイテムが得られます。
from operator import itemgetter
next = min(array,key=itemgetter(1))[0]
2 番目の項目をキーとして使用して、リストを並べ替えることもできます。
array.sort(array,key=itemgetter(1))
最初にリストをソートしてから、あなたが言ったようにループします:
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