尝试根据索引将True或False附加到表

时间:2019-06-27 14:47:33

标签: python-3.x

我有一个称为x(大小458)的真或假值列表

x = [False, True, False, True, True, False, False ...]

还有一个索引列表,称为y。 (大小1754)

y = [0, 1, 2, 2, 3, 3, 4, ...]

我想做的是创建一个与列表x对应的True或False值的新列表。例如,根据x和y中的值成功执行我的代码将是创建一个名为z的新列表,大小为1754,看起来像这样

z = [False, True, False, False, True, True, True, ...]

到目前为止,我已经使用以下代码尝试了此操作

z = []
for i in y:
   for index, value in enumerate(x):
       if i == index:
           z.append(value)

但是,z作为空白列表返回。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:2)

由于y包含x的索引,因此对y的理解列表以及直接访问x的索引可以解决O(len(y))中的问题。因此,我认为这已经足够。:

z = [x[i] for i in y]

示例:

x = [False, True, False, True, True]
y = [0, 1, 2, 2, 3, 3, 4]
z = [x[i] for i in y]

输出:

[False, True, False, False, True, True, True]