Давайте посмотрим, что здесь происходит:
# Initialize the lists
a = ['a','b','d','c']
b = [1,2,4,3]
c = [[],[]]
# Assign the lists to positions in c
c[0]=a
c[1]=b
# Sort b, which was assigned to c[1]
c[1].sort()
print(c)
Так что, конечно, вы не можете ожидать, что a
будет отсортирован. Попробуйте вместо этого:
# Sort a, which was assigned to c[0]
c[0].sort()
# Sort b, which was assigned to c[1]
c[1].sort()
print(c)
Или, если c
переменной длины:
# Sort every list in c
for l in c:
l.sort()
Редактировать : в ответ на ваш комментарий буквы никак не связаны с цифрами. Если вы хотите, чтобы они были связаны, вам нужно объединить их в структуру, подобную кортежу. Попробуйте:
>>> c = [ (1, 'a'), (2, 'b'), (4, 'd'), (3, 'c') ]
>>> c.sort()
>>> print c
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
По умолчанию кортежи сортируются по первому элементу. Обратите внимание, что здесь вы можете использовать любые буквы вместо a, b, c, d, и кортежи все равно будут сортироваться (по номеру).