我想namedtuple
在 python 中创建一组,能够使用联合操作动态添加元素。
下面的代码片段创建了一个set
of namedtuple
,它表现得很好。
from collections import namedtuple
B = namedtuple('B', 'name x')
b1 = B('b1',90)
b2 = B('b2',92)
s = set([b1,b2])
print(s)
哪个打印
{B(name='b1', x=90), B(name='b2', x=92)}
现在,如果我创建另一个namedtuple
并将其添加到我set
的union
操作中,它的行为将不符合预期。
b3 = B('b3',93)
s = s.union(b3)
print(s)
代码片段打印以下输出。
{93, B(name='b1', x=90), B(name='b2', x=92), 'b3'}
预期的输出应该是:
{B(name='b1', x=90), B(name='b2', x=92), B(name='b3', x=93)}
我是否误解了 API?python2 和 3 都表现出相同的行为。