相关疑难解决方法(0)

从列表列表中删除重复项

我有一个Python列表:

k = [[1, 2], [4], [5, 6, 2], [1, 2], [3], [4]]
Run Code Online (Sandbox Code Playgroud)

我想从中删除重复的元素.如果它是一个正常的列表而不是我可以使用的列表set.但不幸的是,该列表不可清除,也无法制作一组列表.只有元组.所以我可以将所有列表转换为元组,然后使用set并返回列表.但这并不快.

如何以最有效的方式完成?

上面列出的结果应该是:

k = [[5, 6, 2], [1, 2], [3], [4]]
Run Code Online (Sandbox Code Playgroud)

我不关心保留秩序.

注意:这个问题很相似,但不是我需要的.搜索了SO但没有找到确切的重复.


标杆:

import itertools, time


class Timer(object):
    def __init__(self, name=None):
        self.name = name

    def __enter__(self):
        self.tstart = time.time()

    def __exit__(self, type, value, traceback):
        if self.name:
            print '[%s]' % self.name,
        print 'Elapsed: %s' % (time.time() - self.tstart)


k = [[1, 2], [4], [5, 6, 2], [1, 2], [3], [5, 2], [6], …
Run Code Online (Sandbox Code Playgroud)

python

105
推荐指数
7
解决办法
8万
查看次数

获取两个列表列表的交集或空列表

我有两个形状相同的清单清单。

list1 = [[1,2,3], [], [4,5], []]
list2 = [[1,2], [7], [4,5], []]
Run Code Online (Sandbox Code Playgroud)

我需要以下列表列表:

[[1,2], [], [4,5], []]
Run Code Online (Sandbox Code Playgroud)

我如何得到它?

PS:这些主题对我没有帮助:

Python-列表的两个列表的交集

查找两个嵌套列表的交集?

python

1
推荐指数
1
解决办法
73
查看次数

列表中列表的交集

任务是在2个列表中找到相等元素的数量,这些列表包含列表.我有两个看起来像的列表

DNF1=[[4], [12], [20], [28,32], [36], [44], [52,54], [60,4],[60,24]]
DNF2=[[16], [20,60], [24], [28,32], [48], [52], [56,58], [60,4]]
Run Code Online (Sandbox Code Playgroud)

此代码不起作用,因为参数是列表:

 count=sum(1 for k in DNF1 if k in DNF2)
Run Code Online (Sandbox Code Playgroud)

我该怎么写

func(DNF1,DNF2)
Run Code Online (Sandbox Code Playgroud)

将返回

[[28,32],[60,4]]
Run Code Online (Sandbox Code Playgroud)

或只是'2'(交叉点中的元素数量)

python intersection list set python-3.x

0
推荐指数
1
解决办法
37
查看次数

标签 统计

python ×3

intersection ×1

list ×1

python-3.x ×1

set ×1