【发布时间】:2018-09-29 21:39:33
【问题描述】:
在这里我试图从列表中创建一个子列表,我得到“没有足够的值来解包错误。
如果我使用k=s.split(','),它会显示错误,而如果我使用k1=[s.split(',')],它在解包时不会显示任何错误。
两者具有相同的类型、相同的大小和相同的内容
我的代码:
inputs = ["1, foo, bar", "2, tom, jerry"]
outputs1=[]
for s in inputs:
print(s)
k=s.split(',')
print(k,type(k),len(k))
k1=[s.split(',')]
print(k1,type(k1),len(k1))
for (x, y, z) in k:
outputs1.append([int(x), y.strip(), z.strip()])
print(outputs1)
【问题讨论】:
-
请将您的代码作为文本而不是图像添加到问题中。
-
您的
for循环错误,只需执行x, y, z = k然后outputs1.append([int(x), y.strip(), z.strip()])。请注意,这将解决您的问题,但毫无疑问是一种更好的方式来编写整个代码块 -
outputs1 = [[int(k) if k.isdigit() else k.strip() for k in k.split(',')] for k in inputs]
标签: python python-3.x python-2.7 python-requests