#30938: [Python]內建有什麼指令可去除重複?並且幫忙排序呢?附贈比較有難度的Python語法糖參考資料


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
i399. 1. 數字遊戲 -- 2022年6月APCS | From: [36.238.38.110] | 發表日期 : 2022-06-22 23:55

在Python中,去除重複第一個想到的可以是set()。

得到結果之後,要如何幫"{ . }"set做排序?只要是iterable,sorted()都可以幫你排序,並且回傳一個list

並且,重複的數量1,2,3 與 集合的個數3,2,1有一一對應關係,可想到mapping(或者indexing)

在Python中,「*」代表「解開」與「收集」,與c語言系列的意義(指標)不同。可以想像成:

1. 解開:一個有包裝的容器(例如list),把外包裝拿走。print(*[1,2,3]) → print(1,2,3)

2. 收集:把沒有包裝的內容,收集起來。

def f(*args, **kwargs): return args

print(  f(1,2,3)  ) → print(  (1,2,3)  )

args會等於tuple (1,2,3)

 

另一個例子是

first, *rest = (1,2,3,4,5,6)

first等於int 1,rest會等於tuple (2,3,4,5,6)

 

奇妙的程式碼:

sorted的用法:

https://www.programiz.com/python-programming/methods/built-in/sorted

*args與**kwargs用法

https://www.programiz.com/python-programming/args-and-kwargs

https://stackabuse.com/unpacking-in-python-beyond-parallel-assignment/

 

 

 
#30939: Re: [Python]內建有什麼指令可去除重複?並且幫忙排序呢?附贈比較有難度的Python語法糖參考資料


fire5386 (becaidorz)

學校 : 國立清華大學
編號 : 115822
來源 : [101.12.147.118]
最後登入時間 :
2024-05-19 09:33:31
i399. 1. 數字遊戲 -- 2022年6月APCS | From: [114.25.95.111] | 發表日期 : 2022-06-23 14:42

奇妙的程式碼:

 


Python好難喔 為什麼不能直接 print(len(nums), *nums)

 
#30985: Re: [Python]內建有什麼指令可去除重複?並且幫忙排序呢?附贈比較有難度的Python語法糖參考資料


snail (蝸牛)

學校 : 新北市立板橋高級中學
編號 : 2021
來源 : [101.136.211.198]
最後登入時間 :
2024-05-18 22:04:56
i399. 1. 數字遊戲 -- 2022年6月APCS | From: [203.64.161.133] | 發表日期 : 2022-06-29 14:41

奇妙的程式碼:

 


Python好難喔 為什麼不能直接 print(len(nums), *nums)

因為要反過來,可以寫成 4-len(nums),reverse=True 也可以在輸出時用 [::-1] 取代。

 
ZeroJudge Forum