使用列表中的索引来获取另一个列表中的另一个值/元素

时间:2020-06-09 05:45:29

标签: python python-3.x list indexing

我有一个项目,其中我必须获取列表中某些元素的索引,然后使用该索引来获取另一个列表中的另一个值。

例如,

j_set = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
on_going = [1]
e_list = [[], [1], [1], [2], [3], [3], [5], [4, 7], [6], [8, 9], [10]]

到目前为止,代码如下:

if isinstance(on_going, int):
    on_going = [on_going]
idx = [y for y, x in enumerate(e_list) if x in on_going] # code to get index in e_list
print(idx)

for i in idx:
    q_active = j_set.append(i)
    print(q_active)

目标是从index获得on_going中相应的e_list的值/元素。然后,使用该索引从j_set获取相应的活动并将其存储在q_active中。

Expected output:
q_active = [2, 3]

问题是,使用上面的代码,我得到了将值存储在q_active中的输出:

[1, 2] #idx output
None
None

任何帮助将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用enumerate从列表中获取索引和数据:

e_list = [[], [1], [1], [2], [3], [3], [5], [4, 7], [6], [8, 9], [10]]
for data_index, data_val in enumerate(e_list):
  print(data_index, data_val)
  # write business logic here

答案 1 :(得分:1)

也许使用list_comprehension:

print([j_set[item] for i in on_going for item in range(len(e_list)) if i in e_list[item]])
#[2, 3]