私は次のようなタプルのタプルを持っています: t = ((4, 3), (2, 9), (7, 2), ...)
、ネストされた各タプル (つまりt[i][0]
) の最初の要素は、繰り返しなしで 1 から 11 の範囲にすることができますが、必ずしも 1 から 11 の間のすべての整数が存在するわけではありません。
r
次の方法で、に基づいてリスト(またはタプル)を作成したいt
:
結果のリストr
の長さは正確に 11 です。の各インデックスについてj
、r
ある場合j + 1 === t[i][0]
はi
、r[j] = t[i][1]
そうでない場合はr[j] = 0
。
これは、最初に初期化r
してから[0] * 11
、ループしてt
に代入t[i][1]
することで実行できr[t[i][0] - 1]
ます。
t = ((4, 3), (2, 9), (7, 2), (10, 1))
r = [0] * 11
for item in t:
r[item[0] - 1] = item[1]
r = [0, 9, 0, 3, 0, 0, 2, 0, 0, 1, 0]
しかし、もっと効率的な方法 (おそらく機能的な方法) はありますか?