【问题标题】:How to remove duplicates values in a matrix?如何删除矩阵中的重复值?
【发布时间】:2020-02-25 07:10:06
【问题描述】:

如何删除矩阵中的重复值?

mat = [[5,6,8] , [8,5,3] , [9,10,3]]
res= []
for i in mat:
    if i not in res:
        res.append(i)
        print(res)
        fit= set(res)
        print(fit)

【问题讨论】:

  • 预期输出?

标签: python python-3.x matrix duplicates


【解决方案1】:
mat = [[5,6,8] , [8,5,3] , [9,10,3]]
res=[]
for i in mat:
    res+=i
duplicated= set([i for i in res if res.count(i)>1])
new=[]
for i in mat:
    new_in=[]
    for j,val in enumerate(i):
        if val not in duplicated:
            new_in.append(val)
    new.append(new_in)
print(new)

如果你期望你的输出像 [[6], [], [9, 10]]

【讨论】:

    【解决方案2】:

    如果您希望输出为 {3, 5, 6, 8, 9, 10},它会删除重复值,然后您可以使用下面的简单代码

    mat = [[5,6,8] , [8,5,3] , [9,10,3]]
    res= set()
    for i in mat:
      res.update(i)
    print(res)
    

    【讨论】:

    • @vaibhavanayan 我想要列表格式的 o/p 而不是字典
    • @vijayaLakshmi 因为您没有在问题中提及预期的 o/p,所以我将您的代码用于 o/p。如果您想要 list 格式,只需使用list 将其转换为列表即可。 Exp:print(list(res)) 而不是 print(res)。希望对你有帮助。
    • @vaibhavanayan 是的,这是我的错误,谢谢
    • @vijayaLakshmi 欢迎。请考虑接受一个答案。
    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    相关资源
    最近更新 更多