请帮忙用python方法把list元素去重,pythonlist,如何将以下list去重u
请帮忙用python方法把list元素去重,pythonlist,如何将以下list去重u
如何将以下list去重
url_list = [ {'path': ['jy5', 'xhr', 'compose', 'init.do'], 'host': 'cwebmail.mail.163.com', 'method': 'POST', 'query': ['cType', 'sid']}, {'path': ['jy5', 'xhr', 'user', 'refresh.do'], 'host': 'cwebmail.mail.163.com', 'method': 'POST', 'query': ['sid']}, {'path': ['jy5', 'xhr', 'compose', 'compose.do'], 'host': 'cwebmail.mail.163.com', 'method': 'POST', 'query': ['action', 'sid']}, {'path': ['jy5', 'data', 'analytics.s'], 'host': 'cwebmail.mail.163.com', 'method': 'GET', 'query': ['product', 'uid', 'host', 'fun', 'data', '_']}, {'path': ['jy5', 'swf', 'upload2.swf'], 'host': 'cwebmail.mail.163.com', 'method': 'GET', 'query': []}, {'path': ['jy5', 'data', 'analytics.s'], 'host': 'cwebmail.mail.163.com', 'method': 'GET', 'query': ['product', 'uid', 'host', 'fun', 'data', '_']}, {'path': ['jy5', 'xhr', 'user', 'refresh.do'], 'host': 'cwebmail.mail.163.com', 'method': 'POST', 'query': ['sid']}, {'path': ['jy4-app', 'xhr', 'dropbox', 'account', 'check.do'], 'host': 'jy4-app.mail.163.com', 'method': 'POST', 'query': ['utoken', 'sid']}]
转换成以下的list
url_list = [ {'path': ['jy5', 'xhr', 'compose', 'init.do'], 'host': 'cwebmail.mail.163.com', 'method': 'POST', 'query': ['cType', 'sid']}, {'path': ['jy5', 'xhr', 'user', 'refresh.do'], 'host': 'cwebmail.mail.163.com', 'method': 'POST', 'query': ['sid']}, {'path': ['jy5', 'xhr', 'compose', 'compose.do'], 'host': 'cwebmail.mail.163.com', 'method': 'POST', 'query': ['action', 'sid']}, {'path': ['jy5', 'data', 'analytics.s'], 'host': 'cwebmail.mail.163.com', 'method': 'GET', 'query': ['product', 'uid', 'host', 'fun', 'data', '_']}, {'path': ['jy5', 'swf', 'upload2.swf'], 'host': 'cwebmail.mail.163.com', 'method': 'GET', 'query': []}, {'path': ['jy4-app', 'xhr', 'dropbox', 'account', 'check.do'], 'host': 'jy4-app.mail.163.com', 'method': 'POST', 'query': ['utoken', 'sid']}]
想到一个办法,不知道有没有更好的方法?欢迎回答
url_list_uniq = []for url in url_list: if url not in url_list_uniq: url_list_uniq.append(url)print url_list_uniq
urlListNew = []while url_list: url = url_list.pop() if url not in urlListNew: urlListNew.append(url)print urlListNew
貌似我这个没第一个答案好...还破坏了原列表
此list中元素为dict,是unhashable对象,使用直接set之后再list的方法去重会报错
TypeError: unhashable type: 'dict'
可以用下面的方法。
f = lambda x,y:x if y in x else x + [y]url_list = reduce(f, [[], ] + url_list)
关于reduce(),请看http://docs.python.org/2/library/functions.html#reduce
编橙之家文章,
相关内容
- Python爬虫库Requests模拟用户登录实现方法,pythonrequest
- Python文件百度云上传该怎么实现,,我写了一个文本编辑
- Python2.7使用urllib2访问https报错,python2.7urllib2,想要访问
- 求教RESTful设计实现方法的疑问,restful疑问,最近在写
- Python lambda作用范围的一点疑惑,pythonlambda,标题描述可
- Python实现函数调用新手遇到的问题,python函数调用新手
- 小白问python dict根据value取key值应该怎么写?,pythondict
- Python requests多线程抓取请求都报异常无解,pythonreques
- Python sys.path哪个命令可以代替append,sys.pathappend,如题。
- python3.x版本 通过urlopen打开一个以html结尾的网址 转换成
评论关闭