首先我写一个测试代码:
a = [-0.2364, 2.2524, 8.4896,'a']
l = []
for i,each in enumerate(a,start=1):
l.append(["{}, {}".format(i,each)])
lst = str(l).translate(None, "'")
print lst
,输出正常
[[1, -0.2364], [2, 2.2524], [3, 8.4896], [4, a]]
这就是我想要为列表中的每个项目添加序列号。然后我尝试使用httplib
读取数据并替换测试列表a
。
a = response.read()
l = []
for i,each in enumerate(a,start=1):
l.append(["{}, {}".format(i,each)])
lst = str(l).translate(None, "'")
print a
print lst
但输出改变如下:
[-0.035308122832456316]
[[1, [], [2, -], [3, 0], [4, .], [5, 0], [6, 3], [7, 5], [8, 3], [9, 0], [10, 8], [11, 1], [12, 2], [13, 2], [14, 8], [15, 3], [16, 2], [17, 4], [18, 5], [19, 6], [20, 3], [21, 1], [22, 6], [23, ]]]
列表a
似乎没问题。但是输出lst
并不是我所期望的。对于这种情况,我试图得到如下输出:
[-0.035308122832456316]
[[1,-0.035308122832456316]]
我该如何解决这个问题?谢谢!
答案 0 :(得分:0)
尝试使用字典而不是列表:
a = [-0.2364, 2.2524, 8.4896, 'a']
l = {}
for i, each in enumerate(a, start=1):
l[i] = each
print l
模拟a
是包含1个项目的列表的指示:
a = [-0.035308122832456316]
l = {}
for i, each in enumerate(a, start=1):
l[i] = each
print l
如其他人所指出的那样,a
是一个值为"[-0.035308122832456316]"
的字符串,则将其转换为列表:
a = "[-0.035308122832456316]"
if isinstance(a, str):
a = [a[1:-1]]
l = {}
for i, each in enumerate(a, start=1):
l[i] = each
print l
答案 1 :(得分:0)
正如我上面提到的,如果 a 是字符串'[-0.035308122832456316]'
,或者甚至包含多个列表值,例如a = '[-0.035308122832456316,89427873479875]'
,只需使用下面的代码,它就可以正常使用。< / p>
import ast
a = response.read()
a = ast.literal_eval(a) #Convert String representation of list to list
l = []
for i,each in enumerate(a,start=1):
l.append(["{}, {}".format(i,each)])
lst = str(l).translate(None, "'")
print a
print lst