python - 将字符串匹配到元组列表

标签 python regex list tuples matching

大家好,我遇到了 Python 方面的问题。 我正在尝试使用先前函数的两个返回来创建一个新列表。 我想获取元素列表中的每个元素并检查它是否是至少一个双元组中的第一个条目。 如果是,则将相应的数字附加到“向量”列表中。 如果该元素没有出现在双重列表中,那么我会附加一个“0”。

例子: 使用这两个列表:

duple_list=[('C', 1), ('H', 4)]

element_list=['C', 'H', 'N']

应该返回一个像这样的向量:

[1, 4, 0]

我当前的代码返回这个:

[1, 0, 4, 0, 0]

当前代码:

for element in element_list:
    for duple in duple_list:
           if element==duple[0]:
              vector.append(duple[1])
              break
          if element!=duple[0]:
              vector.append(0)
return vector

我知道为什么我的代码不起作用,但我不知道我应该改用哪个工具/我应该做些什么不同的事情。

最佳答案

>>> [dict(duple_list).get(e, 0) for e in element_list]
[1, 4, 0]

没有列表理解的步骤。从元组列表创建 dict:

>>> duple_dict = dict(duple_list)
>>> duple_dict
{'H': 4, 'C': 1}

并检查 element_list 中的每个元素是否包含在 duple_dict 中:

>>> vector = []
>>> for element in element_list:
       if element in dict(duple_dict):
           vector.append(duple_dict[element])
       else:
           vector.append(0)

>>> vector
[1, 4, 0]

关于python - 将字符串匹配到元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699187/

相关文章:

python - 如何在不使用 time.sleep() 的情况下每隔几秒移动一次 turtle ?

javascript - 输入元素如何检查字符串是否匹配模式属性中指定的正则表达式?

javascript - 解析带有 "&"字符后没有 "="的 URL 参数

正则表达式:如何匹配两个字符内的文本部分,例如引号

python - Google App Engine 上的 ListProperty 与 StringListProperty

python错误: the parameter "pControls" must be either a Tuple or a List

python - 在 View 之间共享并在 AppConfig 中初始化的变量

python - 在 Python 中将金额转换为单词

c++ - 使用 std::list<std::string> 时 std::string 的内存泄漏

python - 从重复整数列表创建虚拟索引列表