gpt4 book ai didi

python - 如何忽略元组中元素的顺序

转载 作者:行者123 更新时间:2023-11-28 19:33:15 25 4
gpt4 key购买 nike

我使用元组作为我创建的字典的键。例如:

example_dict = {}
example_dict[("A", "B")] = "1"

稍后当我想修改字典中条目的值时,我目前无法控制元组的顺序。例如:

("B", "A") may be the case, instead of ("A", "B")

我从我在 python shell 中尝试的简单 == 比较中知道这些元组不相等。

我想知道如何解决这个问题?我怎样才能使以下内容不产生 KeyError:

print (example_dict["B", "A"])

有没有一种方法可以一致地对元组的元素进行排序?有没有办法完全忽略订单?还有其他解决方法吗?我知道我可以将元组的所有排列作为字典中的键,然后稍后整理不同排列的值。我强烈希望避免这样做,因为这只会增加问题的难度和复杂性。

最佳答案

通常的方法是对键进行排序:

example_dict[tuple(sorted(key_tuple))] = "1"

使用 frozensets 作为键(如果元组中没有重复元素):

example_dict[frozenset(key_tuple)] = "1"

或者使用(item, count)元组的frozensets作为键(如果元组中可以有重复的元素):

example_dict[frozenset(Counter(key_tuple).viewitems())] = "1"

无论选择哪个选项,在查找值时都必须应用相同的转换。

关于python - 如何忽略元组中元素的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755714/

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