Python如何打印列表列表

时间:2013-06-22 14:43:27

标签: python python-3.x

我想用下面的代码打印python 3.x中的列表列表,但是它给出了一个错误。

lol=[[1,2],[3,4],[5,6],['five','six']]
for elem in lol:
      print (":".join(elem))
# this is the error I am getting-> TypeError: sequence item 0: expected str instance, int found

我期待这个输出:

1:2
3:4
5:6
five:six

我可以使用下面的perl代码实现相同的输出(这仅供参考):

for (my $i=0;$i<scalar(@{$lol});$i++)
{
    print join(":",@{$lol->[$i]})."\n";
}

我如何在python 3.x中执行此操作?

3 个答案:

答案 0 :(得分:7)

我会去:

for items in your_list:
    print (*items, sep=':')

这利用print作为函数,不需要连接或显式字符串转换。

答案 1 :(得分:3)

无法加入int唯一的字符串。您可以明确地将str所有数据投射到for elem in lol: print (":".join(map(str, elem))) 试试这样的事情

for elem in lol:
    print (":".join(str(i) for i in elem))

或与发电机

format

或者您可以使用for elem in lol: print (":".join("'{}'".format(i) for i in elem)) 而不是强制转换为字符串(这允许您使用复杂的格式)

{{1}}

答案 2 :(得分:1)

使用list comprehensionstr.join

在加入之前将整数转换为字符串(使用str()

>>> lis = [[1,2],[3,4],[5,6],['five','six']]
>>> print ("\n".join([ ":".join(map(str,x))   for x in lis]))
1:2
3:4
5:6
five:six

或:

>>> print ("\n".join([ ":".join([str(y) for y in x])   for x in lis]))
1:2
3:4
5:6
five:six