从嵌套列表中删除相似的元素

oo92

我正在使用以下代码创建嵌套列表:

from itertools import combinations


def get_nested_list(arr, n, k):
    iterator = 0
    nest = []

    for i in range(1, n):

        for combo in combinations(arr, i):
            odd_num = 0

            for item in combo:
                if item % 2 != 0:
                    odd_num += 1

            if odd_num <= k:
                iterator += 1
                nest.append(combo)

    nest = [list(i) for i in nest]
    return nest


a = [1, 2, 3, 4]
b = len(a)
c = 1

print(get_nested_list(a, b, c))

这是我的输出:

[[1], [2], [3], [4], [1, 2], [1, 4], [2, 3], [2, 4], [3, 4], [1, 2, 4], [2, 3, 4]]

但是,我得到了像[1,2][1,4]这样的元素它们具有相同的x值,[2, 4]并且[3, 4]具有相同的y值。如何创建包含完全不同的子列表的列表?这是我要完成的工作:

[[1], [2], [3], [4], [1, 2], [2, 3], [3, 4], [2, 3, 4]]
wjandrea

除了删除相似的内容外,不要一开始就麻烦它们。确实,您不需要组合,而是需要重叠的块(除了包含多个奇数项的块(您的代码已经解释了这些,我在这里进行了修改))。

def overlapping_chunks(size, sequence):
    """Yield overlapping chunks of sequence."""
    for i in range(len(sequence)-size+1):
        yield sequence[i:i+size]

def powerchunk(sequence):
    """Yield all overlapping chunks of sequence, similar to a powerset."""
    for size in range(1, len(sequence)+1):
        yield from overlapping_chunks(size, sequence)

a = [1, 2, 3, 4]
max_odds = 1
result = [
    chunk for chunk in powerchunk(a)
    if sum(item % 2 != 0 for item in chunk) <= max_odds
    ]
print(result)  # -> [[1], [2], [3], [4], [1, 2], [2, 3], [3, 4], [2, 3, 4]]

相关:将Python列表拆分为重叠块的列表

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从列表中删除相似的句子

来自分类Dev

从列表中删除相似的数字

来自分类Dev

排列列表中的元素,以使相似的元素相距最远

来自分类Dev

从字典列表中查找相似的键值元素

来自分类Dev

如何从列表中删除相似的字典并获得单个值?

来自分类Dev

Python,从两个列表中删除相似的值

来自分类Dev

从python列表中删除特定的相似元素

来自分类Dev

在遍历列表时计算并删除列表中的相似元素

来自分类Dev

在Java流中合并相似的元素

来自分类Dev

如何从输入中删除相似的边框?

来自分类Dev

如何从输入中删除相似的边框?

来自分类Dev

在PIG中如何删除相似的值

来自分类Dev

如何从Dart列表中删除类似的元素?

来自分类Dev

通过循环删除相似的元素但留下独特的元素

来自分类Dev

从Python的列表中删除外观相似的字符串

来自分类Dev

Python从嵌套列表中删除特定元素

来自分类Dev

从嵌套列表C#中删除元素

来自分类Dev

从嵌套列表中删除元素-Python

来自分类Dev

如何从嵌套列表Lisp中删除元素

来自分类Dev

从列表列表中在线查找最相似的列表

来自分类Dev

根据Python中的元素从嵌套列表中删除子列表

来自分类Dev

使用Python在列表列表中查找相似的项目

来自分类Dev

从嵌套列表的列表中按类型删除元素

来自分类Dev

提取与列表中的单词相似的段落中的单词

来自分类Dev

如何使用批处理,Jscript(JREPL?)或vBScript从文本文件(图像列表)中删除相似的行?

来自分类Dev

从两个文件中删除相似的行

来自分类Dev

删除多个目录中名称相似的文件

来自分类Dev

如何从表中删除一些相似的行?

来自分类Dev

从elasticsearch Head插件中删除名称相似的索引

Related 相关文章

热门标签

归档