i have csv file. each column represents parameter , contains few values (eg. 1, 2, 3, 5) repeated hundreds of times. want write python program reads each column , stocks content in dictionary {column_header: list_numbers} (without repeating numbers).
i tried adapt example given in python documentation:
def getlist(file): content = dict() open(file, newline = '') inp: my_reader = reader(inp, delimiter = ' ') col in zip(*my_reader): l = [] k in col: if k not in l: l.append(k) print(k) # debugging purposes content[col[0]] = l i expecting, printing k, see each element of column. instead, several columns @ time.
any idea wrong?
it looks there. i'd use set detect repeated numbers (more efficient):
def getlist(file): content = {} open(file, newline = '') inp: my_reader = reader(inp, delimiter = ' ') col in zip(*my_reader): content[col[0]] = l = [] seen = set() k in col[1:]: if k not in seen: l.append(k) seen.add(k) return content make sure delimiter right; if above doesn't work print() may show whole rows delimiters still in them, strings.
say, file uses , delimiter instead, output like:
{'a,b,c,d': ['0,1,2,3', '1,2,3,4']} while configuring correct delimiter give you:
{'d': ['3', '4'], 'c': ['2', '3'], 'b': ['1', '2'], 'a': ['0', '1']}
Comments
Post a Comment