Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python列表的值将发生更改_Python - Fatal编程技术网

python列表的值将发生更改

python列表的值将发生更改,python,Python,我有一个字符串处理函数,它有3个参数: String1,ex:“A” 第2条,例如:“B” python字符串列表 用例:迭代元组(字符串)列表以传递上述函数的前2个参数,并在整个迭代过程中(包含字符串当前配置的python列表不应更改) 代码: 错误是在一次迭代后,字符串函数的第三个参数更改为postchangeList(字符串处理函数的输出)。任何关于如何阻止列表更改的建议。您的函数正在修改输入列表,因此请继续向其传递stateConfig的新副本。请记住,字符串是不可变的,因此您可能不需要

我有一个字符串处理函数,它有3个参数:

  • String1,ex:“A”
  • 第2条,例如:“B”
  • python字符串列表
  • 用例:迭代元组(字符串)列表以传递上述函数的前2个参数,并在整个迭代过程中(包含字符串当前配置的python列表不应更改)

    代码:


    错误是在一次迭代后,字符串函数的第三个参数更改为postchangeList(字符串处理函数的输出)。任何关于如何阻止列表更改的建议。

    您的函数正在修改输入列表,因此请继续向其传递
    stateConfig
    的新副本。请记住,字符串是不可变的,因此您可能不需要深度副本:

    for each in inputList:
        postchangeList = stackBlockfouser(*each, stateConfig[:])
    

    我还冒昧地在循环变量上使用了星形展开。

    如前所述,可能:

    def stackBlockforuser(first, second, your_list):
        new_list = your_list[:]  # or list(your_list)
        ...
    

    除非您为
    stackBlockforuser
    提供代码,否则我们不知道发生了什么。@Prune整个代码太大。此外,在迭代过程中,python列表的值发生了变化,这一问题给我留下了深刻的印象。因此,我在通过记录者确认后给出了这个片段,这就是问题的根源。我从一位绅士那里得到了我想要的确切答案。因此,如果你觉得你贡献了什么,请评论或回复帖子,或者请离开我的帖子。
    def stackBlockforuser(first, second, your_list):
        new_list = your_list[:]  # or list(your_list)
        ...