更新集合 Python 中的值?
update the value in set Python?
这是我的集合示例,我想更新它:
>>> x = set()
>>> x.add(('A1760ulorenaf0821x151031175821564', 1, 0))
>>> x
set([('A1760ulorenaf0821x151031175821564', 1, 0)])
我的预期结果是:
set([('A1760ulorenaf0821x151031175821564', 1, 1)])
我该怎么做?集合是最好的选择,还是我必须为此使用另一种数据结构?我认为 set
中的更新方法可以做到这一点。但是,我犯了一个错误,这不是一个好的解决方案,因为它没有将第一个参数视为键并重复元素。
您必须从集合中删除 元素,并添加一个更新了该值的新元素。这是因为集合使用 散列 来有效地消除重复项。如果允许直接改变元素,你会破坏这个模型。
我认为您只希望 第一个元素 是唯一的,并跟踪与第一个元素关联的一些数据。如果是这样,您想改用 dictionary;使用第一个元素作为键映射到列表中的其他两个值以便于更改:
>>> 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]
这是我的集合示例,我想更新它:
>>> x = set()
>>> x.add(('A1760ulorenaf0821x151031175821564', 1, 0))
>>> x
set([('A1760ulorenaf0821x151031175821564', 1, 0)])
我的预期结果是:
set([('A1760ulorenaf0821x151031175821564', 1, 1)])
我该怎么做?集合是最好的选择,还是我必须为此使用另一种数据结构?我认为 set
中的更新方法可以做到这一点。但是,我犯了一个错误,这不是一个好的解决方案,因为它没有将第一个参数视为键并重复元素。
您必须从集合中删除 元素,并添加一个更新了该值的新元素。这是因为集合使用 散列 来有效地消除重复项。如果允许直接改变元素,你会破坏这个模型。
我认为您只希望 第一个元素 是唯一的,并跟踪与第一个元素关联的一些数据。如果是这样,您想改用 dictionary;使用第一个元素作为键映射到列表中的其他两个值以便于更改:
>>> 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]