ホームページ  >  記事  >  バックエンド開発  >  Python の map() および zip() 操作メソッドの紹介

Python の map() および zip() 操作メソッドの紹介

高洛峰
高洛峰オリジナル
2017-03-07 16:11:031690ブラウズ

map() の場合、そのプロトタイプは次のとおりです:map(function, sequence)。これは、シーケンス内の各要素に対して関数操作を実行します。

たとえば、前の a, b, c = map(int, raw_input().split()) は、入力 a, b, c を整数に変換することを意味します。別の例:

a = ['1','2','3','4']
print map(list,a)
print map(int,a)

最初のマップはリスト a の各要素をリストに変換し、2 番目のマップは a の各要素を整数に変換します。
zip() の場合、プロトタイプは zip(*list)、list はリスト、zip(*list) は次のようなタプルを返します:

list = [[1,2,3],[4,5,6],[7,8,9]]
t = zip(*list)
print t

出力: [(1, 4, 7 ) 、(2, 5, 8), (3, 6, 9)]

x = [1,2,3,4,5]
y = [6,7,8,9,10]
a = zip(x,y)
print a

出力: [(1, 6), (2, 7), (3, 8), (4, 9 ) 、(5, 10)]

以下にいくつかの追加があります:

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> [sum(x) for x in list] 
[3, 8] 
>>> map(sum,list) 
[3, 8]

各列の合計を取得したい場合は、最初に zip(*list) を使用してリストを解凍する必要があります。そして、タプルリストを取得します。ここで、i 番目のタプルには、各行の i 番目の要素が含まれます:

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> zip(*list) 
[(0, 3), (1, 1), (2, 4)] 
>>> [sum(x) for x in zip(*list)] 
[3, 2, 6] 
>>> map(sum,zip(*list)) 
[3, 2, 6]

次の例は、zip と unzip (実際には zip と * は一緒に使用されます) がどのように機能するかを示しています:

[python] 
>>> x=[1,2,3] 
>>> y=[4,5,6] 
>>> zipped = zip(x,y) 
>>> zipped 
[(1, 4), (2, 5), (3, 6)] 
>>> x2,y2=zip(*zipped) 
>>> x2 
(1, 2, 3) 
>>> y2 
(4, 5, 6) 
>>> x3,y3=map(list,zip(*zipped)) 
>>> x3 
[1, 2, 3] 
>>> y3 
[4, 5, 6]


Pythonでのmap()とzip()の操作方法を紹介する関連記事は、PHP中国語サイトに注目してください!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。