【问题标题】:Using index from a list to get another value/element in another list使用列表中的索引来获取另一个列表中的另一个值/元素
【发布时间】:2020-06-09 05:45:29
【问题描述】:

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

例如,

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)

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

Expected output:
q_active = [2, 3]

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

[1, 2] #idx output
None
None

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

【问题讨论】:

  • 请添加输入和预期输出
  • @HarshaBiyani 已经编辑了我的帖子。输入实际上是on_going中的值。因此,对于 on_qoing = 1,它将尝试在 e_list 中查找其“匹配”并获取该匹配的索引。使用该索引,在 j_set 中获取其对应的值,然后存储在 q_active 中。

标签: python python-3.x list indexing


【解决方案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]

【讨论】:

  • 我得到了我想要的!非常感谢!
  • @AJGayeta 没问题
【解决方案2】:

您可以使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多