0

我有一个场景,我在一个漂亮的汤结果集中搜索值,并根据它们的内容对它们进行不同的处理,例如:

for i in bs_result_set:
    if 'this unique string' in i.text:
        print 'aaaa'
    else:
        print 'bbbb'

但是我已经意识到唯一条件实际上在结果集中出现了两次,但是我不需要第二个复制值,因此想首先将其从结果集中删除。

我尝试了以list(同时保留顺序)删除重复值的方法,但这些方法似乎不适用于作为漂亮汤结果集的对象。例如,我使用这篇文章中的逻辑来尝试:

from collections import OrderedDict 
OrderedDict.fromkeys(bs_result_set).keys()

但这似乎并没有删除重复的值。

所以我的问题是如何在保留顺序的同时从漂亮的汤结果集中删除重复值?

4

1 回答 1

0

What about:

h = {}
for i in bs_result_set:
    if i not in h:
        if 'this unique string' in i.text:
            print 'aaaa'
        else:
            print 'bbbb'
        h[i] = 1

If the key is not i but found from i (computed, field, etc.), you can do

h = {}
for i in bs_result_set:
    key = <some formula involving i>
    if key not in h:
        if 'this unique string' in i.text:
            print 'aaaa'
        else:
            print 'bbbb'
        h[key] = 1
于 2013-05-02T11:01:09.367 回答