如何将值列表添加到现有集?


当前回答

我发现我今天也需要做一些类似的事情。该算法知道何时创建一个需要添加到集合中的新列表,但不知道何时完成对列表的操作。

总之,我想让set使用id而不是hash。因此,我发现mydict[id(mylist)] = mylist而不是myset.add(mylist)提供我想要的行为。

其他回答

请注意set.update()函数。文件说:

用集合本身和其他集合的并集更新集合。

您将希望使用可哈希的元组(不能像列表那样对可变对象进行哈希)。

>>> a = set("abcde")
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> t = ('f', 'g')
>>> a.add(t)
>>> a
set(['a', 'c', 'b', 'e', 'd', ('f', 'g')])

我通常是这样做的:

def add_list_to_set(my_list, my_set):
    [my_set.add(each) for each in my_list]
return my_set

联合是最简单的方法:

list0 = ['a', 'b', 'c']

set0 = set()
set0.add('d')
set0.add('e')
set0.add('f')

set0 = set0.union(list0)

print(set0)

输出:

{'b', 'd', 'f', 'c', 'a', 'e'}

希望这能有所帮助:

>>> seta = set('1234')
>>> listb = ['a','b','c']
>>> seta.union(listb)
set(['a', 'c', 'b', '1', '3', '2', '4'])
>>> seta
set(['1', '3', '2', '4'])
>>> seta = seta.union(listb)
>>> seta
set(['a', 'c', 'b', '1', '3', '2', '4'])