天天看點

python實作清單前十個元素升序,後十個元素降序

輸入一個整數清單,清單元素為20個,元素之間逗号隔開,編寫程式,将前10個元素升序排列,後10個元素降序排列,并輸出清單。

随機生成清單:

import random
s = []
for i in range(20):
    s.append(random.randint(0,100))
a = s[0:10]
a.sort()
b = s[10:20]
b.sort()
b.reverse()
print(s)
print(a)
print(b)
s = a + b
print(s)
           

知識點:

1、利用random庫随機生成一個清單

2、利用sort()函數對清單進行排序

3、利用reverse()函數将鄭徐清單反序

輸入清單:

n = input("請以清單格式輸入一個清單:\n")
s = list(n[1:-1].split(",")) #将輸入的字元串轉化為字元串清單
s = list(map(int,s)) #将字元串清單轉換為數字清單
a = s[0:10]
a.sort()
b = s[10:20]
b.sort()
b.reverse()
print(s)
print(a)
print(b)
s = a + b
print(s)
           

知識點:

1、排序部分同上

2、利用map()函數将字元串清單轉化為數字解表

注:以上代碼在十個以下元素隻有升序效果,超過十個元素,才會有降序效果

以下是折半升序降序的方法

n = input("請以清單格式輸入元素的清單:\n")
s = list(n[1:-1].split(",")) #将輸入的字元串轉化為字元串清單
s = list(map(int,s)) #将字元串清單轉換為數字清單
l = len(s) #擷取清單的長度
frontHalfList = s[0:int(l/2)] #擷取前一半清單的值
frontHalfList.sort() #對前一半進行升序排列
backHalfList = s[int(l/2):]
backHalfList.sort()
backHalfList.reverse()
print(frontHalfList)
print(backHalfList)
s = frontHalfList + backHalfList
print(s)