这里有一个类似的问题,但答案没有帮助。
我有一个列表列表,特别是像..
[[tables, 1, 2], [ladders, 2, 5], [chairs, 2]]
它意味着是一个简单的索引器。
我打算像这样输出它:
tables 1, 2
ladders 2, 5
chairs 2
虽然我无法获得相同的输出。
然而,我可以得到:tables 1 2
ladders 2 5
chairs 2
但这还不够接近。
有一种简单的方法可以做我要问的事吗?这并不意味着该计划的难点。
答案 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设置分隔符。 :)