2017-05-04 4 views
1

私は、複数のリストの内容を比較し、最小の変数を持つ簡単な方法を探しています。最も有名なリストに物を追加しますか? (Python)

次に、新しい変数をそのリストに追加するように設定します。

例:この中

list1 = [1,5,7,12,4,8] 
list2 = [3,2,9,11,14,6,10] 
list3 = [13,15,16] 

は、私はそれが最も短くなると、それに新しい価値を追加するLIST3を見つけたいです。

+0

感謝。 –

答えて

3

によりニシキヘビminmax、およびsortkeyキーワード引数に、これは、Pythonで関数へ

min([list1, list2, list3..], key = len).append(item) 

キー対応を行うことが非常に簡単です各要素に適用され、結果はminとの両方で比較に使用されます。この場合、関数len(listとtupleのようなシーケンスオブジェクトの長さと、__len__を定義する任意のクラスを取得する)が使用されます。

min

key引数は、1引数の順序付け関数

キーがするために使用される1つの引数の関数を指定list.sort()から

はlist.sort()のために使用されるように指定します各リスト要素から比較キーを抽出します(たとえば、key = str.lower)。

たとえば、あなたと、それは私、私は必要なすべてを持って、より多くの私を指摘方向との回答が男性のための

>>> x = [11231] 
>>> y = [1,2,3,4,5] 
>>> z = [1,2,3,4,1,1] 
>>> min([x,y,z], key = len) 
[11231] 
3

各リストのlenを確認し、そのリストにappendをチェックする小さな関数を書くことができます。

例えば
def add_to_shortest(lists, item): 
    min(lists, key = lambda i: len(i)).append(item) 

>>> add_to_shortest([list1, list2, list3], 5) 
>>> list3 
[13, 15, 16, 5] 
関連する問題