我有这段代码:
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
如何做到这一点?
答案 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:在最后一个值后附加的字符串,默认为换行符。