Python, CSV档案:输入多行一列变量



This "Codes"column line是CSV归档文件的一部分,它有12列和5800行。

我需要比较这个特定列中的所有行,并返回所有重合的行。有办法吗?

代码:['ARAMDS0001', 'ARAMDS0002', 'ARAMDS0003', 'ARAMDS0004', 'ARAMDS0005', 'ARAMDS0006', 'ARAMDS0007', 'ARAMDS0003', 'ARAMDS0007']

这是完全可能的—您只需为每个列表创建一个散列,如果散列相同,则该列表与另一个条目一致。

你需要决定是否:

['a', 'b', 'c'] == ['b', 'a', 'c']

由于列表在python中不是可哈希对象,您需要创建自己的哈希函数,如:

n_hash = hash(''.join(sorted(['c', 'b', 'a'])))

然后你把这些哈希值加到一个集合中——如果哈希值已经存在,你就找到了一个重合的列表。

如果你有足够的内存,你可以使用连接文本,而不是计算散列:

my_rows = [['a', 'b', 'c'], ['c', 'b', 'a']]
my_set = set()
for actual_row in my_rows:
s_hash = ''.join(sorted(actual_row))
if s_hash in my_set:
print(f'duplicate row: {actual_row}')
else:
my_set.add(s_hash)

最新更新