在Python 3中,我尝试解压缩列表列表:
members = [['3', '5', '5', '20', 'D'], ['2', '2', '2', '30', 'C']]
我希望它以
的格式打印3 5 5 20 D
2 2 2 30 C
我已尝试使用print (' '.join(members)),
,但我一直收到错误:
TypeError: sequence item 0: expected str instance, list found
答案 0 :(得分:4)
members = [['3', '5', '5', '20', 'D'], ['2', '2', '2', '30', 'C']]
for item in members:
print ' '.join(item)
答案 1 :(得分:3)
这是一个嵌套列表,当你这样做时:
long ts = System.currentTimeMillis();
Date localTime = new Date(ts);
String format = "yyyy/MM/dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat (format);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Date gmtTime = new Date(sdf.format(localTime));
System.out.println("Local:" + localTime.toString() + "," + localTime.getTime() + " --> UTC time:" + gmtTime.toString() + "-" + gmtTime.getTime());
您真的想尝试使用空格加入每个“子列表”。您看到的错误是因为Python无法将整个“子列表”转换为字符串。不过,你走的是正确的道路!
您可以使用列表解析来执行此操作:
print (' '.join(members))
或生成器表达式:
print(*[' '.join(m) for m in members], sep="\n")
或循环:
print(*(' '.join(m) for m in members), sep="\n")
或者也是循环:
for member in members:
print(*member)
for member in members:
print(' '.join(member))
运算符将列表解压缩为逗号分隔的参数(简单来说就是这样)。
答案 2 :(得分:2)
您需要以某种方式对members
的每个成员采取行动。这里有几个选项让你开始。
迭代每个成员并将其解压缩:
>>> for m in members: print(*m)
...
3 5 5 20 D
2 2 2 30 C
加入每个成员并解开整个事件:
>>> print(*(' '.join(m) for m in members), sep='\n')
3 5 5 20 D
2 2 2 30 C
答案 3 :(得分:2)
您可以解压缩 list
print
for member in members:
print(*member)
# 3 5 5 20 D
# 2 2 2 30 C
答案 4 :(得分:2)
在python中
" ".join(["a", "b", "c"])
产生
"a b c"
如果您希望单个字符串作为数据的结果,您可以做的只是嵌套其中两个表达式:
result = "\n".join(" ".join(L) for L in members)
使用每个列表中的空格"\n"
项分隔获得的换行符" "
分隔。
如果您只是想打印数据,那么简单的循环更容易阅读:
for L in members:
print(" ".join(L))
答案 5 :(得分:2)
这有效
for member in members:
print " ".join(member)