【发布时间】:2023-03-12 15:08:01
【问题描述】:
我有一个 python 列表[1,2,3,4,5,6] 我必须打印[1,2,3,6,5,4]?前半段升序,后半段降序
【问题讨论】:
-
把大问题分解成小步骤。你能分割(切片)列表吗?你能把列表倒过来吗?
我有一个 python 列表[1,2,3,4,5,6] 我必须打印[1,2,3,6,5,4]?前半段升序,后半段降序
【问题讨论】:
尝试得到一半,然后反转:
>>> l=[1,2,3,4,5,6]
>>> l[len(l)//2:]=l[len(l)//2:][::-1]
>>> l
[1, 2, 3, 6, 5, 4]
>>>
切片+切片+反转。
【讨论】:
[1,2,3,5,6,4]。
通过列表切片:
# 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]
【讨论】:
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))
【讨论】:
你可以这样存档,
In [24]: mid = len(lst)//2
In [25]: sorted(lst[:mid]) + sorted(lst[mid:],reverse=True)
Out[25]: [1, 2, 3, 6, 5, 4]
【讨论】:
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]
【讨论】:
只使用长度切片列表然后对其进行排序
list=[1,2,3,4,5,6]
middle = len(list)//2
print(sorted(list[:middle])+sorted(list[middle:],reverse=True))
【讨论】: