python - 如何在 2 元组集合中找到具有特定第一个元素的 2 元组?

标签 python set pattern-matching tuples

我有一组类型为(str,int)的对。我将找到包含特定字符串的元组,然后将相应的整数加 1。我知道如何通过询问是否 myTuple in mySet 来查找集合中的元组。但我不知道如何处理这种情况。我将不胜感激任何帮助。

这是一个示例集:

from sets import Set
up = 2
down = 3
right = 1
left = 2
mySet = Set([("up",up),("down",down),("right",right),("left",left)])

mySet 说,我想将第一个元素为 "up" 的第二个元素增加 1,所以我需要类似

if ("up",ref) in mySet:
    ref += 1 

通过这样做,我想增加原始变量 up 的值和元组的第二个元素。

最佳答案

我建议您使用字典来实现您的目的。这样,新计数的重新分配将更加干净且易于解释。例如:

>>> my_set = { 'up': 0, 'down': 0, 'left': 0, 'right': 0 }
>>> my_set['up'] += 1
>>> my_set
{'up': 1, 'down': 0, 'left': 0, 'right': 0}

正如 Brian 所描述的,元组是不可变的,因此每次更新计数时,都必须使用更新后的计数创建一个新元组。然后可以用它来替换旧的元组。

关于python - 如何在 2 元组集合中找到具有特定第一个元素的 2 元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53927608/

相关文章:

java - 使用 HashMap 获取重复出现的情况

c - 在 C 中匹配二进制模式

python - matplotlib 1.4.2 与 Seaborn : line markers not functioning

python - 使用 if else 条件和正确的间距在 python 中打印

python - for 循环的替代品 |如何检查单词是否包含不同单词的一部分

Python:frozensets 比较

java - 如何在Java中替换字符串的一部分,其中它匹配第一个几个字符,转义中间的一些字符并匹配最后的一些字符?

pattern-matching - 我可以在这个 Elixir 匿名函数中避免元组参数吗?

python - Conda - 无法完全删除环境

python - 没有名为 '_pywrap_tensorflow_internal' 的模块(仍然没有工作解决方案)