Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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-';str';对象没有属性';追加';_Python_String_List - Fatal编程技术网

Python-';str';对象没有属性';追加';

Python-';str';对象没有属性';追加';,python,string,list,Python,String,List,我在这里搜索了这个错误,但还没有看到任何与我的情况相匹配的东西(免责声明,我仍然习惯于Python) 当我给它一个print命令来测试lineItemMem实际上是一个列表而不是字符串时,它会为我打印一个列表。如果我输入代码 lineItemMem.split(“,”)若要断开字符串,我会收到一个错误,指出list对象没有属性split。因此,基本上,当我尝试执行列表操作时,错误表示它是一个字符串,当我尝试执行字符串操作时,错误表示它是一个列表。我已经尝试过一点胡闹,但坦率地说,我不知道这里有什

我在这里搜索了这个错误,但还没有看到任何与我的情况相匹配的东西(免责声明,我仍然习惯于
Python

当我给它一个print命令来测试
lineItemMem
实际上是一个列表而不是字符串时,它会为我打印一个列表。如果我输入代码


lineItemMem.split(“,”)
若要断开字符串,我会收到一个错误,指出
list
对象没有属性
split
。因此,基本上,当我尝试执行
列表操作时,错误表示它是一个
字符串,当我尝试执行字符串操作时,错误表示它是一个列表。我已经尝试过一点胡闹,但坦率地说,我不知道这里有什么问题。感谢您提供的任何见解。

我认为问题与以下几行有关:

                lineItemMem.append(gainLoss)
                lineItemMem = ','.join(lineItemMem)
最初,
lineItemMem
是一个列表,您可以在其末尾附加一个项目。但是,您正在执行的
join
调用会将列表变成字符串。这意味着下次运行这部分代码时,
append
调用将失败


我不确定最好的解决方案到底是什么。也许您应该为字符串版本使用不同的变量?或者,在将列表项合并为一个字符串并写出结果后,您应该将
lineItemMem
变量重新初始化为一个新的空列表?你必须决定什么最适合你的实际目标。

有两个地方设置了
lineItemMem
。第一个是:

lineItem = lineItem.split()
# ...
    lineItemMem = lineItem
其中设置为拆分操作的结果,即列表

第二位是:

lineItemMem = ','.join(lineItemMem)
这里,它被设置为连接操作的结果,即字符串

因此,错误有时表示它是一个字符串,有时表示它是一个列表的原因是,这实际上取决于if语句中的条件


正如所展示的,代码几乎是不可调试的。与其修修补补,不如考虑应该实现的不同目标(读取文件、解析内容、格式化数据、将其写入另一个文件)并分别处理

字符串是不可变的。什么是
类型(lineItemMem)
lineItem = lineItem.split()
# ...
    lineItemMem = lineItem
lineItemMem = ','.join(lineItemMem)