在Python中单独返回向量的值

时间:2017-05-06 19:00:17

标签: python string python-2.7

我有这段代码:

x = [[0.1,0.2,1]]

x_label = str(x).strip('[]')

print'x_label:',x_label

print'x_label[0]:',x_label[0]
print'x_label[1]:',x_label[1]
print'x_label[2]:',x_label[2]

我想打印每个位置的值,但目前结果如下:

x_label: 0.1, 0.2, 1
x_label[0]: 0
x_label[1]: .
x_label[2]: 1

预期结果是:

x_label: 0.1, 0.2, 1
x_label[0]: 0.1
x_label[1]: 0.2
x_label[2]: 1

如何做到这一点?

3 个答案:

答案 0 :(得分:0)

您只想访问x [0]:

x = [[0.1,0.2,1]]

for elem in x[0]:
     print elem

输出是:

 0.1 
 0.2
 1

答案 1 :(得分:0)

适用于您的示例的一件事是拆分新字符串

x_list = x_label.split(', ')
# x_list = []

要将x_label转换回Python列表对象,您可以使用eval函数,但这可能会有相当大的风险。

>>> eval(label_x)
(0.1, 0.2, 1)  # this is a tuple, if you want you can convert it to a list

但是因为你已经定义了包含所有数据的变量x,所以你可以这样做。

>>> x[0][1]
0.2

答案 2 :(得分:0)

Python的print()函数在这里派上用场。期望进行打印本身无需进行进一步处理:

from __future__ import print_function

x = [[0.1,0.2,1]]

print('x_label:', end=' ')
print(*x[0], sep=', ')
print('x_label[0]:', x[0][0])
print('x_label[1]:', x[0][1])
print('x_label[2]:', x[0][2])

输出:

x_label: 0.1, 0.2, 1
x_label[0]: 0.1
x_label[1]: 0.2
x_label[2]: 1

print()函数采用可选参数end结束sep,允许自定义结束和分隔字符串:

  

sep:在值之间插入字符串,默认为空格。

     

end:在最后一个值后附加的字符串,默认为换行符。