2022年8月23日 星期二

Python a225: 明明愛排列

 a225: 明明愛排列

#a225: 明明愛排列

'''

可惜,沒有下一題叫做「列排愛明明」,明明系列即將在這裡告一段落,謝謝大家這幾天來的支持!


明明喜歡把數字排成一列--用他自己的方式!

他首先先看個位數,把個位數由小到大排。接著,如果個位數字一樣的話,他會將這些數字,由大至小排。

例如,如果數字有 38 106 98 26 13 46 51 的話,那麼 51 會排最前面,因為個位數字 1 是其中最小的一個。

而 106 26 46 這三個數字,個位數同樣都是 6,所以明明會直接將他們由大至小排,也就是 106 46 26。

所以,排好之後是:51 13 106 46 26 98 38,請你幫他輸出最終結果吧!


輸入說明

有多組測試資料,以 EOF 結束。

每組測試資料以一個 n(<=1000) 開始,表示明明拿到了幾個數字。接著有 n 個以空白隔開的整數。


輸出說明

請輸出排序後的結果,以空白隔開。


範例輸入 #1

7

38 106 98 26 13 46 51

6

1 2 3 4 5 0

5

98 76 12 34 55

6

33 33 88 88 83 38


51 13 106 46 26 98 38

0 1 2 3 4 5

12 34 55 76 98

83 33 33 88 88 38


'''

print('a225: 明明愛排列')

print('先看個位數,把個位數由小到大排。')

print('接著,如果個位數字一樣的話,他會將這些數字,由大至小排。')

while True:

  try:

    nums = [int(i) for i in input('測試資料,以 EOF 結束-->').split(' ')]   # 將輸入的字串轉換成數字串列

    nums.sort(reverse=True)           # 先將串列由大到小排序

    print('串列由大到小排序-->',nums)

    nums.sort(key=lambda s: s%10)     # 使用 lambda 匿名函式,根據除以 10 的餘數由小到大排列

    print('結果-->',*nums)   # 使用 *args 運算子打散串列並輸出

  except:

    break


參考 https://steam.oxxostudio.tw/category/python/zerojudge/a225.html



>>> %Run a225.py

a225: 明明愛排列

先看個位數,把個位數由小到大排。

接著,如果個位數字一樣的話,他會將這些數字,由大至小排。

測試資料,以 EOF 結束-->1 2 3 4 5 0

串列由大到小排序--> [5, 4, 3, 2, 1, 0]

結果--> 0 1 2 3 4 5

測試資料,以 EOF 結束-->33 33 88 88 83 38

串列由大到小排序--> [88, 88, 83, 38, 33, 33]

結果--> 83 33 33 88 88 38

測試資料,以 EOF 結束-->38 106 98 26 13 46 51

串列由大到小排序--> [106, 98, 51, 46, 38, 26, 13]

結果--> 51 13 106 46 26 98 38

測試資料,以 EOF 結束-->

>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...