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

kin*_*jom 4 python csv python-3.x

我的csv文件

student,gender,id

jimmy,male,001
joe,male,002
joe,male,002
hugo,female,003
Run Code Online (Sandbox Code Playgroud)

我的密码

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)
Run Code Online (Sandbox Code Playgroud)

设置方法将生效TypeError: unhashable type: 'list'。如果我尝试类似的错误data= line(dict.fromkeys(data))

meo*_*dog 6

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

>>> set(map(tuple, data))
{('jimmy', 'male', '001'), ('hugo', 'female', '003'), ('joe', 'male', '002')}
Run Code Online (Sandbox Code Playgroud)

map(tuple, data) 等效于:

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