根据python中列表中字符串的值为变量赋值

根据python中列表中字符串的值为变量赋值,python,odoo-8,Python,Odoo 8,我是python新手。我有一个包含字符串的列表,它依次用于Odoo中的一个选择字段中,并根据字符串是什么,将一个数字分配给另一个变量。我想在列表中循环,如果string的值与我要查找的匹配,那么就会给number\u value变量分配一个整数。我尝试了几种不同的方法来实现这一点,但没有成功 以下是我试图实现的目标: stringlist = [('a','abc'), ('b','def'), ('c','ghi')] number_value = 0 #Initialize vari

我是python新手。我有一个包含字符串的列表,它依次用于Odoo中的一个选择字段中,并根据字符串是什么,将一个数字分配给另一个变量。我想在列表中循环,如果string的值与我要查找的匹配,那么就会给number\u 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
我尝试了enumerate,还使用了for循环和while循环,但无法使其工作。任何建议都会有帮助


谢谢。

您的比较格式不正确。您正在检查元组(不可变列表)是否在
stringlist
中等于
abc
def
。您希望提取元组中的第二个元素,并检查它是否等于
abc
def
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

例如,我如何能够基于键进行比较?例如,如果我说
如果x[1]='a'
,那么分配
number\u value=1
。或者甚至根据我在原始代码中发布的值本身进行比较。我该怎么做呢?一些代码示例会有所帮助。谢谢。@OdooProgrammer
如果x[0]='a'
这是一个元组。这与列表的想法相同,只是不能更改元组。你谈论它就像是一本字典。两种不同的数据结构。你可以把
stringlist
变成一个dict列表,比如:
[{'a':'abc'},{'b':'def'},{'c':'ghi'}]
我认为我做不到,因为据我所知,Odoo似乎要求它是一个列表而不是一个字典。因此,我不得不使用列表。是否存在通过元组循环并查找键或变量的方法?无论如何,我都不会试图修改列表。我只想在元组中循环并找到键或值(以可能的为准),然后将number\u值指定为一个数字。