关于Python的两个问题:创建表&;无法在行中找到重复项

关于Python的两个问题:创建表&;无法在行中找到重复项,python,python-3.x,Python,Python 3.x,我在csv文件中以这种方式拥有这种格式的数据集: 第一个问题:我试图在下面用python创建的表中找到重复的行? 我尝试使用set函数来运行这些行,得到的输出是 即使数据集中有重复的行,也没有重复的行 第二个问题:当我意识到它在打印时变成一个表格时,是否可以引用此表格?以便我可以在下一步使用它进行计算 COL_1_WIDTH = 10 COL_2_WIDTH = 35 for row in data: IC1 = len(str(row[0])) IC2 = len(str(row[1]))

我在csv文件中以这种方式拥有这种格式的数据集:

第一个问题:我试图在下面用python创建的表中找到重复的行? 我尝试使用set函数来运行这些行,得到的输出是 即使数据集中有重复的行,也没有重复的行

第二个问题:当我意识到它在打印时变成一个表格时,是否可以引用此表格?以便我可以在下一步使用它进行计算

COL_1_WIDTH = 10
COL_2_WIDTH = 35
for row in data:
IC1 = len(str(row[0]))
IC2 = len(str(row[1]))
 print( str(row[0])+ str( (COL_1_WIDTH-IC1) *' ') +\
 str(row[1]) + str( (COL_2_WIDTH-IC2) *' ') +\
 str(row[2]))

for row in data:
 if len(set(row)) !=len(row):
 print ('duplicates: ', row)
else:
    print ('no duplicates:', row)
仅允许使用内置功能和numpy


谢谢你的建议。谢谢大家!

您没有真正解释什么类型的对象是“数据”,所以我假设它是一个字符串列表。 以下是我如何从csv文件创建我的:

with open('/home/sebastien/Documents/answerSO.csv') as file:
    data=file.read()    #a string

data=data.split('\n')   #a list of strings
data.pop()      #to delete the last element, an empty string
(请注意,使用csv模块可能是一个更好的主意)

现在,为了寻找重复项,我使用了下面介绍的方法:


关于引用它,它在“数据”中。

len(set(data))!=len(data)
将告诉您是否有重复,让您仍然需要一些工作来找出重复的内容。(您一次只检查一个项目,因此len始终是设置和非设置的项目。)您好,谢谢!,我只是运行并将其更改为数据。获取错误:TypeError:Unhabable类型:“writeable void-scalar”这是什么类型的表(例如,您正在使用Pandas)?请提供一个。嗨,我没有使用熊猫。使用内置函数。抱歉,“data”指的是带有标题的picture表:quarter、type、valueOK,但我指的是Python。如果您只是运行此脚本,它将引发一个
name错误:未定义名称“data”
谢谢!,我试着运行脚本。此行中遇到错误:if row not in seen:TypeError:unhable type:“writeable void scalar”我不理解。我所做的是在加载数据后放置脚本块。在此之前,我在问题中排除了新创建的表。我想我明白了。你能打印“数据”并发送结果吗?我的猜测是,拆分它时出现了一个问题,您最后在行中遇到了一个不可处理的对象,所以不是我拥有的字符串。当然,这与csv中“行结束”的约定有所不同。Mac使用“\r”和Windows“\r\n”。我知道原因。我使用了你的第二块脚本并继续上面的问题脚本。我使用data=np.loadtxt打开文件。我无法使用它。问题脚本输出:2007-Q1 1-1
seen = set()
uniq = []
for row in data:
    if row not in seen:
        uniq.append(row)
        seen.add(row)
    else:
        print("found a duplicate:",row)