python - Getting elements of a csv file -


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