我有一个像这样的元组: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]
但是有没有更有效的方法(也许是一种功能性的方法)?