2015-06-19 5 views
0

У меня есть такой файл в формате .csv и я хочу, чтобы удалить дубликаты ключей и их значение. (ЗНАЧЕНИЯ ВСЕ РАВНО!)Удалить дубликаты ключей (и их значение) из словаря PYTHON

1: 'value' 
2: 'value' 
3: 'value' 
1: 'value' 
1: 'value' 
4: 'value' 

и я хочу:

1: 'value' 
2: 'value' 
3: 'value' 
4: 'value' 

Я написал этот фрагмент, но теперь я не знаю, мотыга для удаления дубликатов ключей.

import csv 
with open('cuff2clean.csv', 'rb') as csvfile: 
    chekreader = csv.reader(csvfile, delimiter='\t')  
    d={} 
    lista=[] 
     for row in chekreader: 
     d[row[0]]=row[1] 

Любое предложение? Спасибо !!!

+0

Словари не могут иметь дубликаты ключей. –

+0

Значит, вы имеете в виду изменить фактический файл csv или сохранить результат в переменной или перезаписать существующий файл csv? –

+1

Если вы попытаетесь создать словарь вроде этого: '{1: 'value', 2: 'value', 3: 'value', 1: 'value'}' output будет этим '{1: 'value' , 2: 'value', 3: 'value'} ', потому что дубликат' key' будет удален автоматически –

ответ

1

Вам не обязательно, Python удаляет их автоматически, так как Joe R написал в комментарии.

Пример:

>>> a = {} 
>>> a[1] = "value" 
>>> a[2] = "value" 
>>> a[3] = "value" 
>>> a[1] = "value" 
>>> a[1] = "value" 
>>> a[4] = "value" 
>>> a 
{1: 'value', 2: 'value', 3: 'value', 4: 'value'} 

Вам просто нужно записать его в файл.

Реальная проблема была бы, если бы вам нужно было иметь более те же ключи (используйте в этом случае список).

0

Прежде чем вставлять в словарь, попробуйте проверить и вставить в него.

for row in checkreader: 
    if not row[0] in d: 
     d[row[0]] = row[1]