搜索内容

有一个问题?

如果您有任何疑问,可以在下面询问或输入您要寻找的!

python 如何进行以下list 元素去重

技术聚客 未结 6 1982

如何将以下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']} ]
6条回答
  • 2021-03-09 13:25

    想到一个办法,不知道有没有更好的方法?欢迎回答

    url_list_uniq = []
    for url in url_list:
            if url not in url_list_uniq:
                    url_list_uniq.append(url)
    print url_list_uniq
    
    0 讨论(0)
  • 2021-03-09 13:25

    uniqlist=list(set(url_list))

    0 讨论(0)
  • 2021-03-09 13:32
    urlListNew = []
    while url_list:
        url = url_list.pop()
        if url not in urlListNew:
            urlListNew.append(url)
    
    print urlListNew
    

    貌似我这个没第一个答案好...还破坏了原列表

    0 讨论(0)
    1. 把问题抽象一下更好,主要是代码段。抽象一下会更容易看。

    2. 用 set

    0 讨论(0)
  • 2021-03-09 13:38

    该方法比采纳的答案速度快10倍
    建议使用以下方法

    def deleteDuplicate(li):
        temp_list = list(set([str(i) for i in li]))
        li=[eval(i) for i in temp_list]
        return li

    原文网址:python 字典列表/列表套字典 数据去重

    0 讨论(0)
提交回复