向集合中添加元组的最佳实践是什么?

2024-10-03 23:26:55 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑这个例子:

In [44]: exl_set = set(a.node)
In [45]: exl_set 
Out[45]: set(['1456030', '-9221969'])
In [46]: exl_set.add(b.node)
In [47]: exl_set
Out[47]: set(['1456030', ('-9227619', '1458170'), '-9221969'])

将长度为2的tuples添加到set而不与第一个add分开的最佳方法是什么?结果应该如下所示:

^{pr2}$

Tags: 方法inaddnodeout例子setpr2
2条回答

在列表或元组中包装初始节点:

exl_set = set([a.node])

不要把它解释成一系列的值。在

set()构造函数将参数解释为iterable,并将接受iterable中的所有值以添加到集合中;从the documentation

classset([iterable]):
Return a new set or frozenset object whose elements are taken from iterable.

演示:

^{pr2}$

或者,创建一个空集并独占使用set.add()

exl_set = set()
exl_set.add(a.node)
exl_set.add(b.node)

初始化集合时,参数被视为iterable,而不是单个项。你可以这样做:

    >>>node = (1, 3)
    >>>node_set = set([node,]) #  initialize a set with a single ilement
    >>>node_set
    set([(1, 3)])

或者选择:

^{pr2}$

相关问题 更多 >