Python 感悟

Python Comprehensions

我有一个元组列表,每个元组看起来像 (i,x)。

我需要 return 一个新列表(仅使用理解),每个值都将在“正确”索引中。如果缺少索引,我们将使用值 -1000 来填补空白。

例如:

输入:[(4,9), (0,2), (1,4), (3,2)]
输出应为:[2, 4, -1000, 2, 9]

我正在尝试使用索引函数,我正在尝试获取元组的索引 (1,2),而我只“知道”第一个元素,第二个可以是任何元素。 我想通过搜索(1,___)得到元组(1,2)的索引,可以吗?

    return [sorted(L)[sorted(L).index((i,))][1] if i in [sorted(L)[j][0] for j in range(0,len(L))] else -1000 for i in range(sorted(L)[len(L)-1][0]+1)]

谢谢大家的帮助!

借助将索引映射到值的字典,我们可以轻松高效地获取索引的值:

[g(i, -1000) for g in [dict(L).get] for i in range(max(L)[0] + 1)]

Try it online!