我有一个程序,其中有一个名称和类的列表。我有按字母顺序排列的列表。现在我试图检查名称是否重复,将类添加到一个名称中。
我正在尝试编写一些代码,例如
如果名称已经在列表中,则遍历名称,将类添加到一个名称中。所以一个例子是,而不是
['Anita','phys 1443'], ['Anita','IE 3312']
我会的
['Anita','PHYS 1443','IE 3312']
在不使用任何内置函数的情况下,我将如何以逻辑方式执行此操作?我试着比较像
if list[i][0] == list[i+1][0]
附加list[i+1][1]
到一个空列表。虽然这几乎奏效了,但它会在某些时候搞砸。这是我的尝试
size = len(c)
i = 0
c = [['Anita', 'PHYS 1443'], ['Anita', 'IE 3312'], ['Beihuang', 'PHYS 1443'], ['Chiao-Lin', 'MATH 1426'], ['Chiao-Lin', 'IE 3312'], ['Christopher', 'CSE 1310'], ['Dylan', 'CSE 1320'], ['Edmund', 'PHYS 1443'], ['Ian', 'IE 3301'], ['Ian', 'CSE 1320'], ['Ian', 'PHYS 1443'], ['Isis', 'PHYS 1443'], ['Jonathan', 'MATH 2325'], ['Krishna', 'MATH 2325'], ['Michael', 'IE 3301'], ['Nang', 'MATH 2325'], ['Ram', 'CSE 1320'], ['Taesu', 'CSE 1320'], ["Tre'Shaun", 'IE 3312'], ["Tre'Shaun", 'MATH 2325'], ["Tre'Shaun", 'CSE 1310']]
## Check if any names repeat
d.append(c[0][0])
while i < size - 1 :
if c[i][0] == c[i+1][0] :
d.append(c[i][1])
d.append(c[i+1][1])
else :
d.append(c[i+1][0])
d.append(c[i+1][1])
i = i + 1
print d
输出是。
['Anita', 'PHYS 1443', 'IE 3312', 'Beihuang', 'PHYS 1443', 'Chiao-Lin', 'MATH 1426', 'MATH 1426', 'IE 3312', 'Christopher', 'CSE 1310', 'Dylan', 'CSE 1320', 'Edmund', 'PHYS 1443', 'Ian', 'IE 3301', 'IE 3301', 'CSE 1320', 'CSE 1320', 'PHYS 1443', 'Isis', 'PHYS 1443', 'Jonathan', 'MATH 2325', 'Krishna', 'MATH 2325', 'Michael', 'IE 3301', 'Nang', 'MATH 2325', 'Ram', 'CSE 1320', 'Taesu', 'CSE 1320', "Tre'Shaun", 'IE 3312', 'IE 3312', 'MATH 2325', 'MATH 2325', 'CSE 1310']