我有一个 CSV 文件看起来像
命中 39、命中 24、命中 9
命中 8、命中 39、命中 21
命中 46、命中 47、命中 20
命中 24、命中 53、命中 46
我想根据先到先得的原则读取文件并创建字典
比如 Hit39 : 1, Hit 24:2 等等......
但请注意 Hit39 出现在第 2 列和第 2 行。因此,如果读者阅读它,则不应将其附加到字典中,它将继续使用新数字。
访问行号后,如果出现,则不应包含该行号之后的数字。
我有一个 CSV 文件看起来像
命中 39、命中 24、命中 9
命中 8、命中 39、命中 21
命中 46、命中 47、命中 20
命中 24、命中 53、命中 46
我想根据先到先得的原则读取文件并创建字典
比如 Hit39 : 1, Hit 24:2 等等......
但请注意 Hit39 出现在第 2 列和第 2 行。因此,如果读者阅读它,则不应将其附加到字典中,它将继续使用新数字。
访问行号后,如果出现,则不应包含该行号之后的数字。
使用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))
由于 Python 是一种具有字典的流行语言,因此您必须使用 Python。至少我假设。
import csv
reader = csv.reader(file("filename.csv"))
d = dict((line[0], 1+lineno) for lineno, line in enumerate(reader))
print d