1

メインリストの各サブリストの最小値を見つけて新しいリストに保存する必要があります。これは私がこれまでに持っているものです:

# Main list.
list_a = [[0.2,0.4,0.6,1.1], [1.2,0.1,0.7,0.9], [0.3,0.5,0.9,0.7], [0.5,0.2,0.6,0.3]]

# List that stores all the minimum values.
list_b = []

# Iterate through all sub-lists in main list.
for sub_list in list_a:
    # Identify minimum value in sub-list.
    min_val = np.argmin(sub_list)
    # Store this minimum value in list_b.
    list_b.append(sub_list[min_val])

このように、次のようにlist_bなります。

print list_b
[0.2, 0.1, 0.3, 0.2]

これを行うためのより効率的/ Pythonicな方法はありますか?


回答

1_CRHaidro、およびDSMからの回答を確認しました。この問題に対する私の最初の提案と比較すると、次のようにランク付けされていますtime.time()

  • 0.00774312019348、私のコード
  • 0.0201649665833、1_CR
  • 0.0234789848328、ハイドロ
  • 0.0014910697937、DSM

私の元のアプローチと比較して、DSM のソリューションは最大 5 倍高速で、他の 2 つのソリューションは最大 28 倍の時間がかかります。すべてが優れたソリューションですが、パフォーマンスのために、DSM を受け入れられた回答としてマークします。皆さん、ありがとうございました!

4

3 に答える 3