繁体   English   中英

Python:Append 仅在多个元素不在另一个列表中时列出

Python: Append to list only if multiple elements are not in another list

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试基于元素子集创建一个新列表。 选择标准是部分字符串。 我有一个工作示例,但我试图以更简洁的方式对此进行编码,以便选择标准本身是一个元素列表。

我希望仅当任何源列表子元素中不存在多个子字符串时才将源列表元素(它本身是一个列表)添加到新列表中。

这是我的工作示例代码:

links = [['abc', 'def'], ['ghi', 'jkl'], ['def', 'xyz']]

sublinks = []
for link in links:
    if ((('ab' not in link[0]) and ('ab' not in link[1])) and\
        (('xy' not in link[0]) and ('xy' not in link[1]))):
        sublinks.append(link)

links列表中,这实现了仅附加元素['ghi', 'jkl']的结果,因为它是源列表中唯一通过任何子中不包含abxy的元素的匹配标准的元素-元素。

示例代码显示了我试图实现的逻辑,但我想将abxy放入列表中,以便我可以指定任意数量的匹配条件。 源列表(包含两个元素的列表)的格式将保持不变。

我花了几个小时试图回答我自己的问题,搜索stackoverflow,试图自己弄清楚,但我还没有取得任何成功,非常感谢任何帮助! 谢谢

2 个回复

这是一个班轮..只有当我正确理解了问题时。 请使用更大的“链接”列表进行测试。

links = [['abc', 'def'], ['ghi', 'jkl'], ['def', 'xyz']]

FinalList = list(filter(lambda x: not any(['ab' in i for i in x]) and not any(['xy' in i for i in x]), links))
print(FinalList)

给出 output 为

[['ghi', 'jkl']]

编辑

在我意识到您需要列表中的否定项后,我更改了代码。 以下也将起作用。 在下面的代码中,最重要的列表是您要过滤的“链接”和包含您想要避免的术语的“Negation_List”。

links = [['abc', 'def'], ['ghi', 'jkl'], ['mno','pqr'],['mno','ghi'],['pqr','jkl'], ['def', 'xyz']]
Negation_List = ['ab','xy','mn','pq']
FinalList = list(filter(lambda x: all(not any([eachNegation in i for i in x]) for eachNegation in Negation_List), links))
print(FinalList)

给出 output 为

[['ghi', 'jkl']]

首先,创建一个包含条件的新列表:

criteria_list = ['ab', 'xy']

用这个替换你的for循环:

for link in links:
    in_list = True
    for criteria_item in criteria_list:
        for item in link:
            if criteria_item in item:
                in_list = False
            
    if in_list:
        sublinks.append(link)

这将遍历“链接”列表中的每个子元素,根据条件列表中的所有项目检查这些元素中的每一个,如果条件列表中没有任何项目,则仅将整个子列表添加到子链接中。

2 确定列表中的哪些元素不在另一个列表中

我有两个IList<CustomObject> ,其中CustomObject有一个Name属性,它是一个string 。 调用第一个set ,第二个subset 。 set包含我刚刚在多选列表框中向用户显示的内容列表。 用户选择的那些已放置在subset (因此subset保 ...

2012-06-06 19:58:11 2 120   c#/ ilist
3 如何删除列表的元素,如果该元素不在另一个列表中

基本上,我有一个公司列表(标记为列表 A),我有一个大清单(标记为列表 B)。 我想查询列表A的元素是否也在列表B中。一些相同的公司有细微的差异,所以我必须使用模糊匹配。 幸运的是,我已经成功找到了在 A 中但不在 B 中的元素。但是我不知道如何删除它而不引起混乱。 (好像很容易引起边界错误) 以 ...

2019-10-23 06:56:09 1 48   r/ list
4 将列表元素附加到另一个列表 (Python)

我制作了一些包含新用户和当前用户列表的代码,并检查用户名是否可用。 如果不可用,它会输出一条消息,说明它,否则输出一条消息,说明它可用。 在此之后,我试图 append 将 new_users 列表的元素添加到 current_users,条件是它不存在。 然后我想打印 current_users ...

7 在 python 中以一对一的方式将元素从 1 个列表附加到另一个列表的嵌套元素

我有两个列表,我想创建一个新列表,其中列表 1 中的元素以几乎一对一的方式附加到列表 2 中的元素。 我的名单是休闲的, 我想将 list1 中的第一个元素附加到 list2 中第一个嵌套列表中的元素,类似地,将 list1 中的第二个元素附加到 list2 中第二个元素中的每个元素。 结果看起来像 ...

8 选择实体包含列表的位置,其中元素不在另一个列表中

我的问题基于另一个问题: 选择实体包含列表的地方,该列表就是另一个列表的子集 但是我想做的是: 我正在编写JPQL查询,并且遇到以下情况。 我有一个Question实体,其中包含标签列表。 我想选择列表中不包含任何给定标签的所有问题。 如何使用JPA做到这一点? 我想做类 ...

2013-02-08 00:10:24 1 2091   jpa/ jpql
10 LINQ:如何将元素列表附加到另一个列表中

我有以下课程 给定List<Element> ,如何使用LINQ查找List<Element>中所有Ints的List<Element> ? 我可以使用以下代码 但它是如此丑陋和冗长的啰嗦,我想每次写它时都会呕吐。 有任何想法吗? ...

2010-01-14 05:59:05 3 4693   c#/ linq
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM