gpt4 book ai didi

python - 替换特定集合元素的 pythonic 方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 18:19:31 24 4
gpt4 key购买 nike

我有一个 python 集合 set([1, 2, 3]) 并且总是想用另一个值替换集合的第三个元素。

可以像下面这样完成:

def change_last_elemnent(data):
result = []
for i,j in enumerate(list(data)):
if i == 2:
j = 'C'
result.append(j)
return set(result)

但是有没有其他 pythonic 方法可以更聪明地做到这一点并使其更具可读性?

提前致谢。

最佳答案

集合是无序的,因此“第三个”元素实际上没有任何意义。这将删除任意元素。

如果这是你想做的,你可以简单地做:

data.pop()
data.add(new_value)

如果你想通过值从集合中删除一个项目并替换它,你可以这样做:

data.remove(value) #data.discard(value) if you don't care if the item exists.
data.add(new_value)

如果你想保持有序数据,使用列表并执行:

data[index] = new_value

显示集合没有顺序:

>>> list({"dog", "cat", "elephant"})
['elephant', 'dog', 'cat']
>>> list({1, 2, 3})
[1, 2, 3]

您可以看到,“3”是由集合 {1, 2, 3} 构成的列表的第三个元素,这只是 CPython 实现的巧合。

您的示例代码在其他方面也存在严重缺陷。 new_list 不存在。任何时候都不会从列表中删除旧元素,并且循环遍历列表的行为完全没有意义。显然,这些都不重要,因为整个概念都是有缺陷的。

关于python - 替换特定集合元素的 pythonic 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10465390/

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