max、min、zip関数の使い方

4719 ワード

  

def max(*args, key=None): # known special case of max
    """
    max(iterable, *[, default=obj, key=func]) -> value
    max(arg1, arg2, *args, *[, key=func]) -> value

    With a single iterable argument, return its biggest item. The
    default keyword-only argument specifies an object to return if
    the provided iterable is empty.
    With two or more arguments, return the large argument.
    """
    pass

    
====

tmp = max(1,2,4)
print(tmp)

#     
a = [1, 2, 3, 4, 5, 6]
tmp = max(a)
print(tmp)

    :key     
-------------

 key      ,  key           。
                  ,     lamda     ,      

a = [-9, -8, 1, 3, -4, 6]
tmp = max(a, key=lambda x: abs(x))
print(tmp)

    :             
------------------

       ,              ,                     :

prices = {
    'A':123,
    'B':450.1,
    'C':12,
    'E':444,
}
#              ,      key,   value
#    zip    keys values    ,  max          
max_prices = max(zip(prices.values(), prices.keys()))
print(max_prices) # (450.1, 'B')

     value     ,    key:

prices = {
    'A': 123,
    'B': 123,
}

max_prices = max(zip(prices.values(), prices.keys()))
print(max_prices) # (123, 'B')

min_prices = min(zip(prices.values(), 

Pythonのzip関数
zip関数は、任意の複数(0個と1個を含む)のシーケンスをパラメータとして受け入れ、tupleリストを返します.具体的な意味は文字で表現しにくいので、直接例を見てください.
x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

print xyz

実行結果は次のとおりです.
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
この結果からzip関数の基本的な動作方式が分かる.2.例2:
x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy

実行結果は次のとおりです.
[(1, 4), (2, 5), (3, 6)]
この結果からzip関数の長さ処理方式が分かる.
3.例3:
x = [1, 2, 3]
x = zip(x)
print x

実行結果は次のとおりです.
[(1,), (2,), (3,)]
この結果からzip関数が1つのパラメータのみで動作する方法が分かる.4.例4:
x = zip()
print x

実行結果は次のとおりです.
[]
この結果からzip関数がパラメータなしで動作する方法が分かる.
5.例5:
x = [1, 2, 3]

y = [4, 5, 6]

z = [7, 8, 9]

xyz = zip(x, y, z)

u = zip(*xyz)

print u

実行結果は次のとおりです.
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
これはunzipのプロセスであり、その動作メカニズムは次のように考えられています.
zip(*xyz)を実行する前に、xyzの値は[(1,4,7),(2,5,8),(3,6,9)]
では、zip(*xyz)はzip((1,4,7),(2,5,8),(3,6,9))に等しいので、運転結果は[(1,2,3),(4,5,6),(7,8,9)]
注意:関数呼び出しで*list/tupleを使用すると、list/tupleが分離され、位置パラメータとして対応関数に渡されます(対応関数が不定個数の位置パラメータをサポートすることを前提とします)
6.例6:
x = [1, 2, 3]
r = zip(* [x] * 3)
print r

実行結果は次のとおりです.
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
その動作メカニズムは次のとおりです.
[x]要素xが1つしかないリストを生成する
[x]*3は、3つの要素を持つリストのリストを生成します.[x,x,x]
zip(*[x]*3)の意味が明確になり、zip(x,x,x)