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]]
我想从二维列表的每一行中删除重复项。该列表由用户输入,由单词组成。
我编写了一段代码,用于从这样的一维数组中删除重复项:
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]]