打印列表中的列表,不带括号

7 投票
6 回答
33017 浏览
提问于 2025-04-17 07:37

这里有个类似的问题,但之前的回答对我没有帮助。

我有一个列表的列表,具体来说是这样的……

[[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 个回答

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

如果你不介意输出结果在不同的行上:

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
9

下面的代码可以实现这个功能:

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

这里的 l 就是你的列表。

对于你的输入,这段代码会输出:

tables 1, 2
ladders 2, 5
chairs 2

撰写回答