如何根据其他列表中的项目匹配选择子列表中的外部项目?

艾丽莎·亚历克斯

我有一个类似下面的列表:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何选择列表中的项目?

CodeGo.net>如何使用Linq或其他方式从列表中删除匹配的项目

如何从列表中删除项目及其在其他列表中的关联项目

如何通过项目的ID从列表中的其他功能

如何从其他表单的列表中添加/删除项目?

如何从Sass列表中删除所有其他项目?

根据单击的项目操作ListView中的其他列表项目

检查列表中是否包含其他列表中的项目

如何根据列表中的项目要求输入?

如何根据jQuery中其他下拉列表中特定项的选择显示下拉列表?

如何转换/过滤子列表中的项目?

如何使用 LINQ 选择属性以及同一级别列表中的其他项目?

匹配列表中的相似项目

通过比较其他列表中的项目从列表中删除项目

对列表中的每个项目以及列表中的其他每个项目执行操作

如何根据列表中项目的多个结果计算列表?

如何返回与列表中的项目匹配的 arangodb 文档列表?

赛普拉斯使用 .eq(0) 选择列表中的项目还会检查其他项目中的条件

根据子列表中项目的顺序将列表列表转换为词典列表

如何根据其他项目更改选定列表项目?

根据R中列表中选择的项目显示输入字段

使用dplyr根据列表中项目的比例选择组

将我与Python列表中的其他项目进行比较

Python-使用“设置”在列表中查找其他项目

Python-使用“设置”在列表中查找其他项目

更新ObservableCollection,从其他列表中接收项目

如何使用python中的字典合并其他列表中某个项目的所有值?

在列表中查找项目,并使用linq从同一位置的其他列表中获得其他项目

为什么在遍历列表时从列表中删除项目会跳过其他所有项目