我有一个类似下面的列表:
mylist = [[0, [1, 2]], [1, [1]], [2, [0, 2]], [3, [3]], [4, []], [5, []], [6, [0]]]
内部列表[1, 2], [1], [0, 2]
等等。
外部列表[0], [1], [2]
等等。
情况1:如果内部列表中有一个项目,myOtherlist
并且不与另一个编号共享此内部列表,则获取外部项目。像下面的一个:
输入:
myOtherlist = [2, 3]
输出:
outer_item_list = [3]
情况2:如果内部列表包含myOtherlist中的所有项目,则获取外部项目,当然,如果其中一个项目myOtherlist
位于in中的其他位置,则获取外部项目mylist
。像下面的一个:
输入:
myOtherlist = [0, 2]
输出:
outer_item_list = [2, 6]
情况3:如果内部列表中有一个项目,myOtherlist
并且内部列表中有一个项目,则获取外部项目。像下面的一个:
输入:
myOtherlist = [0]
输出:
outer_item = [6]
我的代码看起来像这样:
outer_item_list = []
for number in list:
for inner in mylist:
if number in inner[1] and len(inner[1]) == 1:
fetch_outer_number = inner[0]
outer_item_list.append(fetch_outer_number)
print(outer_item_list)
我认为我已经成功完成了案例3,但是我需要案例1和案例2的帮助。
注意:这mylist
是所有3种情况的通用输入。
您可以遍历mylist
并检查第二个子列表中的所有元素是否在以下位置可用myOtherlist
:
def find_items(mylist, myOtherlist):
outer_item = []
for x, y in mylist:
if y and all(z in myOtherlist for z in y):
outer_item.append(x)
return outer_item
用法:
>>> mylist = [[0, [1, 2]], [1, [1]], [2, [0, 2]], [3, [3]], [4, []], [5, []], [6, [0]]]
>>> find_items(mylist, [2, 3])
[3]
>>> find_items(mylist, [0, 2])
[2, 6]
>>> find_items(mylist, [0])
[6]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句