Python不替换列表中的值

Python不替换列表中的值,python,list,Python,List,我正在尝试编辑列表中的值,以便使此列表与程序中其他地方的列表相似 我从一个文档中得到一个值列表,并希望将“关”改为“否”,将“开”改为“是”,将“空”改为“空”,等等 但是,由于某些原因,以下代码没有替换这些值: counter = 0 while counter < len(value_list)-1: if str(value_list[counter]) in ("", " ", "N/A"): value_list[counter] = "Null"

我正在尝试编辑列表中的值,以便使此列表与程序中其他地方的列表相似

我从一个文档中得到一个值列表,并希望将“关”改为“否”,将“开”改为“是”,将“空”改为“空”,等等

但是,由于某些原因,以下代码没有替换这些值:

counter = 0
while counter < len(value_list)-1:
    if str(value_list[counter]) in ("", " ", "N/A"):
        value_list[counter] = "Null"
    elif str(value_list[counter]) == "Off":
        value_list[counter] = "No"
    elif str(value_list[counter]) == "On":
        value_list[counter] = "Yes"
    counter += 1
    print counter, value_list[counter]

我看了一下,但是使用enumerate给了我和现在一样的问题。我最好还是坚持使用一个计数器变量和if/elif/else语句,因为我是办公室里为数不多的几个程序员之一,我希望其他人能够轻松理解这一点

看起来字符串中实际上包含双引号。从字符串中删除它们:

while counter < len(value_list)-1:
    value = value_list[counter].strip('"')
    if value in ("", " ", "N/A"):
        ...

看起来字符串中实际上包含双引号。从字符串中删除它们:

while counter < len(value_list)-1:
    value = value_list[counter].strip('"')
    if value in ("", " ", "N/A"):
        ...

此处显示的输出不可能:

counter = 0
while counter < len(value_list)-1:
    if str(value_list[counter]) in ("", " ", "N/A"):
        value_list[counter] = "Null"
    elif str(value_list[counter]) == "Off":
        value_list[counter] = "No"
    elif str(value_list[counter]) == "On":
        value_list[counter] = "Yes"
    counter += 1
    print counter, value_list[counter]

此处显示的输出不可能:

counter = 0
while counter < len(value_list)-1:
    if str(value_list[counter]) in ("", " ", "N/A"):
        value_list[counter] = "Null"
    elif str(value_list[counter]) == "Off":
        value_list[counter] = "No"
    elif str(value_list[counter]) == "On":
        value_list[counter] = "Yes"
    counter += 1
    print counter, value_list[counter]

为了保持一致性,他可能希望在替换中包含双引号:
value\u list[counter]=“No”
谢谢!我没有意识到它从文档中引入了引号。为了保持一致性,他可能希望在替换中包含双引号:
value\u list[counter]=“No”
谢谢!我不知道它是从文档中引用的。你是故意跳过列表的最后一个元素吗?你是故意跳过列表的最后一个元素吗?谢谢!我一定是把订单全忘了。是的,你忘了。然而,当我从一个文档中抓取数据时,它还引入了“双引号”。更新了答案以考虑到这一点,并使用字典进行翻译。谢谢!我一定是把订单全忘了。是的,你忘了。然而,当我从一份文件中抓取数据时,它还引入了“双引号”。更新了答案以考虑到这一点,并使用字典进行翻译。
translation_dict = {"": "Null",
                    " ": "Null",
                    "N/A": "Null",
                    "Off": "No",
                    "On": "Yes"}
for counter in range(len(value_list)):
    old_value = str(value_list[counter]).strip('"')
    if old_value in translation_dict:
        value_list[counter] = translation_dict[old_value]
        print counter, value_list[counter]