[' [a,a,a]',[b,b,b]']和[[a,a,a],[b]之间有什么区别? ,b,b]]在python中?

时间:2016-07-01 03:19:10

标签: python list numpy

在我的程序中,当我调试代码时,我的代码中的某个地方似乎生成了

X1=['[a,a,a]','[b,b,b]'] 

以及我生成的其他地方

X2=[[a,a,a],[b,b,b]] 

当我想添加这两个列表然后使用numpy.array(X1+X2)时,我会收到错误消息。问题是我不知道我的代码有什么问题,因为我甚至不知道这两者之间有什么区别(即引用和没有引用)。如果我找到这个问题的答案,那么我也可以找到我的问题。

2 个答案:

答案 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,但是从另一个方向来说它有点棘手。