根据python

时间:2015-12-31 16:03:23

标签: python odoo-8

我是python的新手。我有一个包含字符串的列表,后者又用于Odoo中的选择字段,并根据字符串的内容,将一个数字分配给另一个变量。我想遍历列表,如果字符串的值匹配我要查找的内容,那么然后将一个整数分配给number_value变量。我已经尝试了几种不同的方法来实现这一目标,但没有成功。

这是我想要完成的事情:

  stringlist = [('a','abc'), ('b','def'), ('c','ghi')]
  number_value = 0 #Initialize variable to 0.

  for x in stringlist:
    if x in stringlist == 'abc':
      number_value = 1

    elif x in stringlist == 'def':
      number_value = 2

    else:
      number_value = 3

我尝试过枚举,并且同时使用了for循环和while循环,但我无法让它工作。任何建议都会有所帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

您的比较形式不正确。您正在检查元组(不可变列表)是否在stringlist等于abcdef。您想要提取元组中的第二个元素,并检查它是否等于abcdef。 for循环上下文中的x是每个元组。

stringlist = [('a', 'abc'), ('b', 'def'), ('c', 'ghi')]
number_value = 0  # Initialize variable to 0.

for x in stringlist:
    if x[1] == 'abc':
        number_value = 1

    elif x[1] == 'def':
        number_value = 2

    else:
        number_value = 3
    print number_value