为了账号安全,请及时绑定邮箱和手机立即绑定

python怎么实现查找重复项,删除

python怎么实现查找重复项,删除

慕丝0462366 2017-06-01 15:41:05
list = ['Tom', 'Jerry', 'Vincent', 'James','Lily', 'Vincent', 'Lily']我想实现2个功能:1.找出重复的名字,保留一个,生成一个新的 nlist= ['Tom', 'Jerry', 'Vincent', 'James','Lily']2.把重复的名字生成一个新的 rlist = ['Vincent', 'Lily']我知道可以用sorted,然后比较,但手动查找删除不方便,当然用set也可以把第一个功能实现,但第二个呢。有什么方法,谢谢。请贴代码
查看完整描述

3 回答

已采纳
?
清波

TA贡献165条经验 获得超90个赞

L = ['Tom', 'Jerry', 'Vincent', 'James','Lily', 'Vincent', 'Lily']

def list_process(L):
    return list(set(L)), list(set([i for i in L if L.count(i)==2]))

list1,list2 = list_process(L)
print(list1, list2)

不引入其他模块了。

修改:

L = ['Tom', 'Jerry', 'Vincent', 'James','Lily', 'Vincent', 'Lily']

def list_process(L):
    return list(set(L)), list(set([i for i in L if L.count(i)>1])) ## 修改为 大于1, 根据评论中 “再见你”的意见

list1,list2 = list_process(L)
print(list1, list2)


查看完整回答
1 反对 回复 2017-06-02
点击展开后面3
?
孤独的小猪

TA贡献232条经验 获得超302个赞

olist = ['Tom', 'Jerry', 'Vincent', 'James','Lily', 'Vincent', 'Lily']

new_set = set(olist)

nlist = list(new_set)

rlist = []
for item in new_set:
	if olist.count(item) > 1:
		rlist.append(item)

print nlist
print rlist

//img1.sycdn.imooc.com//592fdca70001f12c12970536.jpg

查看完整回答
2 反对 回复 2017-06-01
  • 慕丝0462366
    慕丝0462366
    多谢,你写的代码很容易理解,对新手很有帮助,多谢你了
  • 3 回答
  • 0 关注
  • 3624 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信