更新set Python中的值?

2024-06-07 13:23:32 发布

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

下面是我的集合的一个例子,我想更新它:

>>> x = set()
>>> x.add(('A1760ulorenaf0821x151031175821564', 1, 0))
>>> x
set([('A1760ulorenaf0821x151031175821564', 1, 0)])

我的预期结果是:

^{pr2}$

我怎么做?集合是最好的选择,还是我必须使用另一种数据结构?我认为set中的update方法可以做到这一点。但是,我犯了一个错误,这不是一个好的解决方案,因为它没有将第一个参数视为键并重复元素。在


Tags: 方法add元素数据结构参数错误update解决方案
2条回答

您必须从集合中移除元素,并添加一个更新了该值的新元素。这是因为集合使用散列来有效地消除重复。如果允许直接改变元素,你会破坏这个模型。在

我想您只希望第一个元素是唯一的,并跟踪与第一个元素相关的一些数据。如果是这样的话,您希望改用字典;使用第一个元素作为键来映射到其他两个值,在列表中可以方便地更改:

>>> x = {}
>>> x['A1760ulorenaf0821x151031175821564'] = [1, 0]
>>> x['A1760ulorenaf0821x151031175821564'][1] += 1  # increment the second element.
>>> x
{'A1760ulorenaf0821x151031175821564': [1, 1]}

字典中的键也必须是唯一的。在

请注意,set.update()只给您一个union操作;通过添加集合中不存在的参数中的所有元素,可以就地更新集合。set.update()不能改变集合中已有的元素,因为集合中的元素不应该被改变(或者至少不能改变它们的哈希和相等性)。在

如果您试图拥有键和值,并且希望根据键进行更新,则最好使用dict

x = {'A1760ulorenaf0821x151031175821564' : [1, 0]}

x['A1760ulorenaf0821x151031175821564'] = [1, 1]

相关问题 更多 >

    热门问题