gpt4 book ai didi

python - 更新 set Python 中的值?

转载 作者:行者123 更新时间:2023-11-28 20:04:41 25 4
gpt4 key购买 nike

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

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

我的预期结果是:

set([('A1760ulorenaf0821x151031175821564', 1, 1)])

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

最佳答案

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

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

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

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

请注意,set.update() 只为您提供了一个联合 操作;通过添加参数中尚未包含在集合中的所有元素来就地更新集合。 set.update() 不能改变集合中已有的元素,因为集合中的元素不应该被改变(或者至少不能改变它们的散列和相等性)。

关于python - 更新 set Python 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35507034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com