打印列表列表,不带括号

时间:2011-12-03 20:59:00

标签: python list printing

这里有一个类似的问题,但答案没有帮助。

我有一个列表列表,特别是像..

[[tables, 1, 2], [ladders, 2, 5], [chairs, 2]]

它意味着是一个简单的索引器。

我打算像这样输出它:

tables 1, 2
ladders 2, 5
chairs 2

虽然我无法获得相同的输出。

然而,我可以得到:

tables 1 2
ladders 2 5
chairs 2

但这还不够接近。

有一种简单的方法可以做我要问的事吗?这并不意味着该计划的难点。

6 个答案:

答案 0 :(得分:9)

以下将会这样做:

for item in l:
  print item[0], ', '.join(map(str, item[1:]))

其中l是您的列表。

对于您的输入,打印出来

tables 1, 2
ladders 2, 5
chairs 2

答案 1 :(得分:3)

如果您不介意输出位于不同的行:

foo = [["tables", 1, 2], ["ladders", 2, 5], ["chairs", 2]]
for table in foo:
    print "%s %s" %(table[0],", ".join(map(str,table[1:])))

要将所有这一切都放在同一条线上会让它变得更加困难:

import sys
foo = [["tables", 1, 2], ["ladders", 2, 5], ["chairs", 2]]
for table in foo:
    sys.stdout.write("%s %s " %(table[0],", ".join(map(str,table[1:]))))

print

答案 2 :(得分:1)

在Python 3.4.x中

以下将会这样做:

for item in l:
    print(str(item[0:])[1:-1])

其中l是你的清单。

对于您的输入,打印出来:

tables 1, 2
ladders 2, 5
chairs 2

另一种(更干净的)方式是这样的:

for item in l:
    value_set = str(item[0:])
    print (value_set[1:-1])

产生相同的输出:

tables 1, 2
ladders 2, 5
chairs 2

希望这有助于任何可能遇到此问题的人。

答案 3 :(得分:0)

试试这个:

L = [['tables', 1, 2], ['ladders', 2, 5], ['chairs', 2]]
for el in L:
    print('{0} {1}'.format(el[0],', '.join(str(i) for i in el[1:])))

输出结果为:

tables 1, 2
ladders 2, 5
chairs 2

{0} {1}是输出字符串

{0}等于el[0] 'tables''ladders',...

{1}等于', '.join(str(i) for i in el[1:])

', '.join(str(i) for i in el[1:])加入列表中的每个元素:[1,2][2,5],...以', '作为分隔符。

str(i) for i in el[1:]用于在加入之前将每个整数转换为字符串。

答案 4 :(得分:0)

这使用了没有map()re.sub()for循环的纯列表推导:

print '\n'.join((item[0] + ' ' + ', '.join(str(i) for i in item[1:])) for item in l)

答案 5 :(得分:0)

在这里(Python3)

尝试:

[print(*oneSet, sep=", ") for oneSet in a]

对于一些:

a=[["tables", 1, 2], ["ladders", 2, 5], ["chairs", 2]]

print(* list)将列表打开为print命令中的元素。您可以使用参数sep = string设置分隔符。 :)