我有一个对象ID的映射:
mapping = {'id-1':'id-10', 'id-2':'id-14', 'id-3':'id-19'}
和两个包含对象的列表,id
是对象的属性,例如object_id1.id = 'id-1'
。你知道吗
list1 = [object_id1, object_id3, object_id4, object_id5]
list2 = [object_id19, object_id11, object_id14, object_id10]
我想要一个集合中相关对象的一个列表。例如
output = [(object_id1, object_id10), (object_id2, object_id14),(object_id3, object_id19)]
有可能在一个for循环中完成吗?你知道吗
不能在单个
for
循环中执行,但可以在两个(不是嵌套的)循环中执行:通过
list2
中的id
构造查找dict以查找项:然后你可以简单地做:
编辑:修正了我对问题的误解,部分改编自: Searching a list of objects in Python
假设list1和list2之间没有重复项,并且总是找到匹配项
这可能适用于此,我尚未对此进行测试,因此您可能会发现一些语法错误:
当然,这可能会得到很大的优化或改进,但这可能是一个合理的起点
编辑:塞尔库克的答案是比较理想的,但我会保持这个参考的缘故
相关问题 更多 >
编程相关推荐