我有一个小问题。 如何检查列表是否具有相同的元素,如果列表具有相同的元素,如何在列表中只留下其中一个元素?
例如,我写了这段代码:
def courses_per_student(tuple_lst):
courses={}
new_tuple_lst=[]
for i in range(len(tuple_lst)):
new_tuple_lst.append((str(tuple_lst[i][0]).lower(),(str(tuple_lst[i][1]).lower())))
for m in new_tuple_lst:
if not courses.has_key(m[0]):
courses[m[0]]=[m[1]]
else:
courses[m[0]]=courses[m[0]]+[m[1]]
return courses
适用于:courses_per_student([(" Rina","数学"),(" Yossi","化学"),(" Riki"," python"),(" Rina","数学"),(" ; Yossi"," biology")]) 的返回: {' rina':['数学','数学'],' yossi':['化学',& #39;生物学'],' riki':[' python']}
我想要那个'数学'只会在列表中出现一次。 三江源
答案 0 :(得分:2)
def uniqode(list):
demolist = []
for el in list:
if el in demolist:
continue
demolist.append(el)
return demolist
答案 1 :(得分:1)
...
for m in new_tuple_lst:
if not courses.has_key(m[0]):
courses[m[0]]=[m[1]]
elif m[1] not in courses[m[0]]:
courses[m[0]]=courses[m[0]]+[m[1]]
如果订单无关紧要,则使用set而不是list也应该这样做。