Skip to content

Python 702 數組合併排序

Python TQC

題目說明:

請撰寫一程式,輸入並建立兩組數組,各以-9999為結束點(數組中不包含-9999)。將此兩數組合併並從小到大排序之,顯示排序前的數組和排序後的串列。

輸入與輸出會交雜如下,輸出的部份以粗體字表示

Create tuple1:
9
0
-1
3
8
-9999
Create tuple2:
28
16
39
56
78
88
-9999
Combined tuple before sorting: (9, 0, -1, 3, 8, 28, 16, 39, 56, 78, 88)
Combined list after sorting: [-1, 0, 3, 8, 9, 16, 28, 39, 56, 78, 88]


題目解析

問題分析:

這個問題要求編寫一個程式,首先讓使用者輸入兩組數組,並以-9999作為結束點(數組中不包含-9999)。然後將這兩組數組合併,並對合併後的數組進行排序,最後顯示排序前的數組和排序後的串列。

解題思路:

  1. 數組的建立:程式需要使用兩個迴圈來接收用戶輸入的整數,直到用戶輸入-9999為止。在迴圈中,使用input()函式獲取用戶輸入,並將其轉換為整數。

  2. 合併數組:將兩個數組合併成一個數組。可以使用extend()方法將第二個數組中的元素添加到第一個數組中。

  3. 數組的排序:對合併後的數組進行排序,可以使用sort()方法。

  4. 輸出結果:將排序前的數組和排序後的串列輸出。確保輸出的格式符合題目要求。

思考方向:

  1. 用戶輸入的處理:確保用戶輸入的整數符合預期,並處理輸入中的特殊終止標誌-9999。

  2. 數組的建立:確保將用戶輸入的整數按照順序加入到各自的數組中。

  3. 數組的合併:確保將兩個數組合併成一個數組。

  4. 數組的排序:確保對合併後的數組進行正確的排序。

Solution
l1 = []
print("Create tuple1:")
while True:
  a = eval(input())
  if(a == -9999):break
  else:
    l1.append(a)

l2 = []
print("Create tuple2:")
while True:
  a = eval(input())
  if(a == -9999):break
  else:
    l2.append(a)

l1.extend(l2)
t = tuple(l1)
l1.sort()
print("Combined tuple before sorting:",t)
print("Combined list after sorting:",l1)

Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments