0

したがって、重複を除外するために繰り返し処理しているリスト L のリストがあります。これがこれを行うための最良の方法ではないことはわかっていますが、具体的に求められたものです。データが重複することはありませんが、修正できなかった空の列が重複することになります。

for x in range(len(L), 0, -1): 
x -= 1 #len() 
for y in range(len(L[0]), 0, -1):
    y -= 1 
    if y != 0 and y != 1: #Skiping Coloumns 0 and 1
        check = L[x][y]
        for x0 in range(len(L), 0, -1):
            x0 -= 1 
            for y0 in range(len(L[0]), 0, -1):
                y0 -= 1 
                if y0 == y:
                    checkagainst = L[x0][y0]
                    if check == checkagainst:
                        if x != x0: #If its on the same row, don't count bro
                            #print "Identical Indices:","X0:",x0,",","Y0:", y0,"|" ,"X:",x,",","Y:",y
                            #print L[x][y], "," , L[x0][y0]
                            WriteMe = True #Write to Not Duplicate file or not decider
                            if check == "": ##Didnt work
                                WriteMe = False
        print x, ",", y
if WriteMe == True:
    dwriter.writerow(L[x])
    WriteMe = False #Set to False for next iteration
else:
    writer.writerow(L[x])
L.pop(x)
print

サンプル入力:

ID, Sex, E-mail

1, M, lol@jk.com

2, F, 

3, F,

4, F, jack@jay.com

予想される出力 (重複ファイルなし):

Id, Sex, E-mail

1, M, lol@jk.com

2, F,

4, jack@jay.com

(ID 2 と ID 3 は重複行であるため、このシナリオでは交換可能です)

期待される出力 (重複ファイル):

ID, Sex, E-mail

3, F, 
4

1 に答える 1

0

使用できますcollections.OrderedDict

>>> from collections import OrderedDict
with open('abc') as f:
    #next(f)       #skip header if present
    for line in f:
        data = map(str.strip, line.split(', '))
        idx, sex, mail = data if len(data) == 3 else data+['']
        dic.setdefault(mail,[]).append([idx,sex])
...     

重複しない:

for k,v in dic.iteritems():
    print ", ".join((v[0][0],v[0][1],k))
...     
1, M, lol@jk.com
2, F, 
4, F, jack@jay.com

複製:

for k,v in dic.iteritems():
    if len(v) >1:
        for v1 in v[1:]:
            print ", ".join((v1[0],v1[1],k))
...             
3, F,, 
于 2013-07-11T23:13:53.317 に答える