在我的程序中,当我调试代码时,我的代码中的某个地方似乎生成了
X1=['[a,a,a]','[b,b,b]']
以及我生成的其他地方
X2=[[a,a,a],[b,b,b]]
当我想添加这两个列表然后使用numpy.array(X1+X2)
时,我会收到错误消息。问题是我不知道我的代码有什么问题,因为我甚至不知道这两者之间有什么区别(即引用和没有引用)。如果我找到这个问题的答案,那么我也可以找到我的问题。
答案 0 :(得分:2)
X1是一个包含两个字符串的列表
X2是一个包含两个列表的列表,每个列表包含三个变量。
关于将字符串转换为列表,您必须创建一个空列表,然后从字符串中删除方括号,然后查找“,”并将之前找到的内容添加到列表中。
答案 1 :(得分:1)
只是为了回答@JoshuaWierenga的回答:
>>> a, b = 1, 2
>>> X1=['[a,a,a]','[b,b,b]']
>>> X2=[[a,a,a],[b,b,b]]
>>> [eval(i) for i in X1] == X2
True
>>> [str(i) for i in X2] == X1
False
>>> [str(i) for i in X2]
['[1, 1, 1]', '[2, 2, 2]']
>>> a, b = 'a', 'b'
>>> X2=[[a,a,a],[b,b,b]]
>>> [str(i) for i in X2]
["['a', 'a', 'a']", "['b', 'b', 'b']"]
你可以看到X1可以转化为X2,但是从另一个方向来说它有点棘手。