Checking for Repeated Strings in 2d list

Posted by Zach Santiago on Stack Overflow See other posts from Stack Overflow or by Zach Santiago
Published on 2013-10-29T15:46:07Z Indexed on 2013/10/29 15:53 UTC
Read the original article Hit count: 398

Filed under:

i have a program where i have a list of names and classes. i have the list in alphabetical order. now im trying to check if names repeat, add the classes to one single name.

im trying to write some code like

go through names if name is already in list, add the class to the one name. so an example would be, instead of having 'Anita ','phys 1443', and 'Anita','IE 3312' i would just have 'Anita','PHYS 1443','IE 3312'. How would i go about doing this in a logival way, WITHOUT using any sort of built in functions? i tried comparing indexe's like if list[i][0] == list[i+1][0], append list[i+1][1] to an emptylist. while that almost worked, it would screw up at some points along the way. here is my attempt

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

output was.

['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']

© Stack Overflow or respective owner

Related posts about python