我的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))
答案 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
会更有效