2010-08-12 2 views
1
opt=[] 
opt=["opt3","opt2","opt7","opt6","opt1"] 
for i in range(len(opt)): 
    print opt[i] 

Выхода для вышеперечисленногоСортировка массива Python

opt3,opt2,opt7,opt6,opt1 

Как сортировать выше массив в порядке возрастания ..

+1

'for i in range (len (opt))' is unPythonic. Вместо этого используйте 'для elt in opt'. – katrielalex

+0

Вам не нужна первая строка ('opt = []'). –

ответ

7

Используйте .sort(), если вы хотите, чтобы отсортировать оригинальный список. (opt.sort())

Используйте sorted(), если вы хотите его отсортированную копию.

0

Зависит от того, хотите ли вы натуральный сорт (который, я думаю, вы делаете), или нет.

Если вы используете sorted() или .sort() вы получите:

>>> opt = ["opt3", "opt2", "opt7", "opt6", "opt1", "opt10", "opt11"] 
>>> print sorted(opt) 
['opt1', 'opt10', 'opt11', 'opt2', 'opt3', 'opt6', 'opt7'] 

В то время как вы, вероятно, хотите ['opt1', 'opt2', 'opt3', 'opt6', 'opt7', 'opt10', 'opt11'].

Если это так, вы хотите изучить natural sorting (существуют различные варианты функции, упомянутые в этой статье).

Смежные вопросы