Re: [問題]不用for迴圈尋找陣列中只出現過一次的資料

看板Python作者 (喲)時間10年前 (2014/05/21 01:50), 10年前編輯推噓0(008)
留言8則, 2人參與, 最新討論串5/5 (看更多)
※ 引述《sariel0322 (sariel)》之銘言: : 我想要請問一下,如果我有一串數字 : A = [9,5,5,4,7,6,4,1,2,0,10,9,7,....] : 要如何找出這列資料中只出現一次的數字,但不用到for迴圈的方法 def uniq(li): A = li[:] A.sort() B = A[:-1] return [x for x in A if (x, x) not in \ filter(lambda (x,y): x == y, zip(A[1:],B))] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.145.113 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1400608216.A.513.html ※ 編輯: yauhh (118.167.145.113), 05/21/2014 01:51:02

05/21 02:14, , 1F
給了我一個 idea
05/21 02:14, 1F

05/21 02:15, , 2F
def uniq(L):
05/21 02:15, 2F

05/21 02:15, , 3F
S = sorted(L)
05/21 02:15, 3F

05/21 02:15, , 4F
Multi = map(lambda T:T[0],
05/21 02:15, 4F

05/21 02:15, , 5F
filter(lambda T:T[0]==T[1], zip(S[1:],S[:-1])))
05/21 02:15, 5F

05/21 02:16, , 6F
return sorted( set(L) - set(Multi) )
05/21 02:16, 6F

05/21 02:22, , 7F
最後既然是set,不必sort
05/21 02:22, 7F

05/21 14:28, , 8F
只是想得到一個漂亮的 list
05/21 14:28, 8F
文章代碼(AID): #1JUvNOKJ (Python)
討論串 (同標題文章)
文章代碼(AID): #1JUvNOKJ (Python)