Как разделить список и отсортировать по возрастанию и убыванию с помощью Python? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть список питонов [1,2,3,4,5,6] Я должен напечатать [1,2,3,6,5,4]?Первая половина в порядке возрастания и следующая половина в порядке убывания

Ответы [ 6 ]

0 голосов
/ 26 ноября 2018

просто используя отрезок длины списка, затем сортируйте его

list=[1,2,3,4,5,6]
middle = len(list)//2
print(sorted(list[:middle])+sorted(list[middle:],reverse=True))
0 голосов
/ 26 ноября 2018
l=[1,2,3,6,5,4] 
l[0:int(len(l)/2)]+sorted(l[-int(len(l)/2):],reverse=True)

Выход

[1, 2, 3, 6, 5, 4]
0 голосов
/ 26 ноября 2018
x = [1,2,3,4,5,6]

a = x[:int(len(x)/2)]
b = x[int(len(x)/2):]

print(sorted(a) + sorted(b, reverse=True))
0 голосов
/ 26 ноября 2018

Вы можете архивировать, как это,

In [24]: mid = len(lst)//2

In [25]: sorted(lst[:mid]) + sorted(lst[mid:],reverse=True)
Out[25]: [1, 2, 3, 6, 5, 4]
0 голосов
/ 26 ноября 2018

По спискам:

# mix list up a bit
l =  [3,4,1,2,5,6]
len_l = len(l)

l.sort() # sort it again

# print first half, then last half reversed
print(l[0:len_l//2]+l[len_l:len_l//2-1:-1])

Вывод:

 [1,2,3,6,5,4]
0 голосов
/ 26 ноября 2018

Попробуйте получить половину, затем поменяйте местами:

>>> l=[1,2,3,4,5,6]
>>> l[len(l)//2:]=l[len(l)//2:][::-1]
>>> l
[1, 2, 3, 6, 5, 4]
>>> 

нарезка + нарезка + реверс.

...