Python - 从输入的二维列表中的每一行中删除重复项

Python - remove dublicates from each row in inputted two dimensional list

我想从二维列表的每一行中删除重复项。该列表由用户输入,由单词组成。

我编写了一段代码,用于从这样的一维数组中删除重复项:

from math import *

inputlist = [(x) for x in input("\nInput words separated with comma:\n").split(', ')]
remove_duplicate = tuple(set(inputlist))
print(f'\nTupel:\n {remove_duplicate}')

然后是另一个进入二维列表的代码:

from math import *

import numpy as np
m = int(input("rows: ")) # rows
n = int(input("columns: ")) # columns
print("\nEneter words:\n")
twodlist = []
for i in range(0,m):
    twodlist.append([])
    for j in range(0,n):
        twodlist[i].append(0)
        twodlist[i][j] = (input())

但我不知道如何组合这些代码,所以我得到了我想要的结果。我不希望按列删除重复项,而只希望按行删除重复项。

我建议首先避免插入重复项。一个不错的方法是使用不能有重复键的字典。这里只有字典的键很重要:

from math import *

import numpy as np
m = int(input("rows: ")) # rows
n = int(input("columns: ")) # columns
print("\nEneter words:\n")
twodlist = []
for i in range(0,m):
    d = {}
    for j in range(0,n):
        d[input()] = None
    twodlist.append(list(d))

如果您使用的是嵌套列表,这应该可以解决问题

a = [[1,1,2,2],[1,2,3,3],[1,1,1]]
remove_duplicate = list(map(list, map(set,a)))
print(remove_duplicate)

输出

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