2012-07-21 143 views
0

我有一个CSV文件看起来像阅读CSV文件,并生成字典

Hit39,Hit24,Hit9

Hit8,Hit39,Hit21

Hit46,Hit47,Hit20

Hit24,命中53,Hit46

我想读取文件并根据先来先得先创建字典

像Hit39:1,Hit 24:2等等......

但注意Hit39出现在第2列和第2列。因此,如果读者阅读它,它不应该将其附加到字典,它将继续与新号码。

一旦行号被访问,它应该不包括数字后,如果出现。

+3

用什么语言? – 2012-07-21 19:44:05

+2

输入的预期输出是什么? – 2012-07-21 19:45:47

+0

另外,这个例子还不足以理解你想要的东西。为什么排除第二个Hit39?因为之前遇到过,或者因为它成功Hit8? – tiwo 2012-07-21 19:52:50

回答

1

使用Python的 - 最佳猜测,直到OP澄清 - 将这个文件好像它是一个巨大的名单和一个递增变量分配到的独特价值出现次数。

import csv 
from itertools import count 

mydict = {} 
counter = count(1) 
with open('infile.csv') as fin: 
    for row in csv.reader(fin, skipinitialspace=True): 
     for col in row: 
      mydict[col] = mydict.get(col, next(counter)) 
0

由于Python是一种流行语言,它有字典,您必须使用Python 。至少我假设。

import csv 

reader = csv.reader(file("filename.csv")) 
d = dict((line[0], 1+lineno) for lineno, line in enumerate(reader)) 

print d