x
в [x[1] for x in ns]
является int
и не подлежит подписке. Вместо этого вы можете написать [x for x in ns]
, который не выдает ошибку. Обратите внимание, что ns
здесь это просто список, а не список списков.
Однако в первом фрагменте кода, который вы написали, ns
, как определено в ns += [[name, score]]
, на самом деле является списком списка. и, таким образом, вы можете использовать вложенные подписки, скажем ns[[1]]
.
. Чтобы отсортировать список из [score, name]
s, просто наберите sorted
на ns
(где ns
- это список списков, например, ):
ns = [[21, 'tom'], [21, 'john'], [13, 'ali'], [24, 'sarah']]
sorted(ns)
, который будет сортировать вложенный список на основе оценки и имени в следующем порядке:
# [[13, 'ali'], [21, 'john'], [21, 'tom'], [24, 'sarah']]