LINUX.ORG.RU

Python сортировка списка

 


1

1

Всем привет! При сортировке списка возвращается довольно странный результат. Код которым сортирую (по задумке, мне должны возвращаться элементы списка после 9-го):

for i in pathin:
    print 'New list'
    dir_list = [d for d in os.listdir(i) if os.path.isdir(os.path.join(i, d))]
    for i in sorted(dir_list[9:]):
        print i

Оригинальный список: Вывод:

  • 1.4-217
  • 1.4-218 1.4-218
  • 1.4-219
  • 1.4-220
  • 1.4-223
  • 1.4-225 1.4-225
  • 1.4-226 1.4-226

и т.д.

Вопрос: отчего так происходит?



Последнее исправление: gadzira (всего исправлений: 2)

У тебя i используется и в первом цикле, и во втором. Так и задумано? Или отступы неправильно поставил?

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 1)

Непонятно в чем странность. Напиши dir_list и как, по твоему он должен быть отсортирован.

A1
()
Ответ на: комментарий от A1

Странность в том, что возвращаются не последние элементы списка, а какие угодно, т.е. может вернуться первый, пятый и предпоследний.

gadzira
() автор топика
Ответ на: комментарий от A1

Что-то я тебя не очень понимаю: список перед for - несортированный, после for - сортированный, но не по-порядку. Короче ясно не стало.

gadzira
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.