map() 関数
マッピングに挑戦しましょう!
zip() の動作を覚えていますか? 与えられたイテラブルを結合し、同じインデックスの要素同士を同じタプルにまとめます。さらに、出力の長さは最も短いイテラブルに制限されます。
あなたの課題は、可変個のイテラブル(例:リスト、文字列、タプル など)を表す *args を受け取る独自の my_zip() 関数を定義することです。my_zip() は zip オブジェクトではなく、あらかじめタプルのリストを返すようにしてください。
注記:本来は args がイテラブルを含むかどうかを最初にチェックすべきですが、ここでは簡単のため省略します。
この演習はコースの一部です
Pythonでコーディング面接問題を練習する
演習の手順
map()を使ってargsからイテラブルのlengthsを取得し、最小の長さを見つけます。- ループ内で、
map()を用いてインデックスiが同じargs内の要素を取得し、mappingを作成します。 mappingをタプルに変換し、tuple_listに追加します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
def my_zip(*args):
# Retrieve Iterable lengths and find the minimal length
lengths = list(map(____, ____))
min_length = ____
tuple_list = []
for i in range(0, min_length):
# Map the elements in args with the same index i
mapping = map(____, args)
# Convert the mapping and append it to tuple_list
tuple_list.append(____(____))
return tuple_list
result = my_zip([1, 2, 3], ['a', 'b', 'c', 'd'], 'DataCamp')
print(result)