Python:匹配元组中的两个元素,返回第三个

标签 python tuples string-comparison

我有一组输入条件,我需要比较这些条件并根据两个输入生成第三个值。一个包含 3 个元素的元组列表似乎是一个合理的选择。我可以使用一些帮助的地方是构建一个紧凑的方法来处理它。我已经列出了我正在考虑使用的结构,如下所示:

input1(string)与第一个元素比较,input2(string)与第二个元素比较,如果匹配则返回第三个元素

('1','a', string1)
('1','b', string2)
('1','c', string3)
('1','d', string3)
('2','a', invalid)
('2','b', invalid)
('2','c', string3)
('2','d', string3)

最佳答案

创建一个字典,字典可以将元组作为键并将第三项存储为它的值。

使用字典将为任何一对 (input1,input2) 提供 O(1) 查找。

dic = {('1','a'): string1, ('1','b'):string2, ('1','c'): string3....}

if (input1,input2) in dic:
   return dic[input1,input2]
else:
   #do something else

在这种情况下使用元组列表将是一种 O(N) 方法,对于每个 input1input2遍历整个元组列表(在最坏的情况下)。

关于Python:匹配元组中的两个元素,返回第三个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174605/

相关文章:

python - 多处理 Python 与 RPYC "ValueError: pickling is disabled"

python - 如何增加 Tkinter 最大 Canvas 尺寸以获得超大图像?

python - 元组列表中的列表列表,重新排序

c++ - AntiViruses 的字符串/签名比较

bash - Bash 脚本中的字符串比较未按预期工作

python - 将 numpy 数组添加到堆队列

python:从外部代码导入 numpy 作为 np 在我自己的用户定义模块中丢失

python - 元组列表中的 max (Python)

c++ - 按类型和歧义提取元组的元素

php - 在这种情况下如何使用比较