作者yauhh (喲)
看板Python
標題Re: [問題]不用for迴圈尋找陣列中只出現過一次的資料
時間Wed May 21 01:50:11 2014
※ 引述《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://webptt.com/m.aspx?n=bbs/Python/M.1400608216.A.513.html
※ 編輯: yauhh (118.167.145.113), 05/21/2014 01:51:02
1F:→ apua:給了我一個 idea 05/21 02:14
2F:→ apua:def uniq(L): 05/21 02:15
3F:→ apua: S = sorted(L) 05/21 02:15
4F:→ apua: Multi = map(lambda T:T[0], 05/21 02:15
5F:→ apua: filter(lambda T:T[0]==T[1], zip(S[1:],S[:-1]))) 05/21 02:15
6F:→ apua: return sorted( set(L) - set(Multi) ) 05/21 02:16
7F:→ yauhh:最後既然是set,不必sort 05/21 02:22
8F:→ apua:只是想得到一個漂亮的 list 05/21 14:28