如何从列表中删除重复的密钥

时间:2019-04-03 08:54:05

标签: python python-3.x csv

我的csv文件

student,gender,id

jimmy,male,001
joe,male,002
joe,male,002
hugo,female,003

我的代码

with open('student.csv', 'r') as csv_file, open('new_student.csv', 'w', newline='') as new_file:
    csv_reader = csv.reader(csv_file)
    csv_writer = csv.writer(new_file, delimiter=',', quotechar='"',)

    list_1 = list(csv_reader)

    for line in list_1:

        data = [['jimmy', 'male', '001'], ['joe', 'male', '002'],['joe', 'male', '002'],['hugo', 'female', '003']]

        set(data)

设置方法将命中TypeError: unhashable type: 'list'。如果我尝试类似data= line(dict.fromkeys(data))

之类的错误

1 个答案:

答案 0 :(得分:6)

可变类型(例如列表)不能用作集合和词典中的键。将内部列表转换为不可变的 tuples

>>> set(map(tuple, data))
{('jimmy', 'male', '001'), ('hugo', 'female', '003'), ('joe', 'male', '002')}

map(tuple, data)等效于:

  • tuple(d) for d in data在Python 3.x中
  • [tuple(d) for d in data]在Python 2.x中–在此处使用itertools.imap会更有效