作者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/cn.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