[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 7]
[1, 2, 3, 4, 6, 7]
[1, 2, 3, 5, 6, 7]
[1, 2, 4, 5, 6, 7]
[1, 3, 4, 5, 6, 7]
[2, 3, 4, 5, 6, 7]
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7
我创建了一个程序,我试图以字符串格式而不是列表来获取输出。我认为在这种情况下,连接分隔符对我有用,但是在这种情况下我不知道在何处以及如何实现它。第二组输出是我想要的。
答案 0 :(得分:4)
鉴于
data = [
[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 7],
[1, 2, 3, 4, 6, 7],
[1, 2, 3, 5, 6, 7],
[1, 2, 4, 5, 6, 7],
[1, 3, 4, 5, 6, 7],
[2, 3, 4, 5, 6, 7],
]
此
for row in data:
# apply str to each item in row using map. join result with space.
print ' '.join(map(str, row))
OUPUTS
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7
答案 1 :(得分:3)
假设您的代码如下:
my_list=[ [ '1', '2', '3'],
[ '1', '2', '3'],
[ '1', '2', '3'] ]
这应该产生你想要的输出:
'\n'.join(''.join(line) for line in my_list)
如果你的元素不是字符串式的,你也需要转换它们:
'\n'.join(''.join(str(element) for element in line) for line in my_list)
答案 2 :(得分:1)
Join是一个String函数
l=[1,2,3,4,5,6,7]
print ' '.join(map(str,l))
# 1 2 3 4 5 6 7
答案 3 :(得分:1)
使用' '
加入内部列表,使用'\n'
In [125]: l
Out[125]:
[[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 7],
[1, 2, 3, 4, 6, 7],
[1, 2, 3, 5, 6, 7],
[1, 2, 4, 5, 6, 7],
[1, 3, 4, 5, 6, 7],
[2, 3, 4, 5, 6, 7]]
In [126]: print '\n'.join(' '.join(map(str, i)) for i in l )
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7
答案 4 :(得分:1)
很大程度上取决于您可能会遇到的值范围。其他解决方案与发布的数据配合良好,但是如果还包括两位数值,则无法对齐所有内容,因为数字的字符串表示具有可变宽度。
在这种情况下,可以生成格式字符串以确保正确对齐,并且在处理数值时,这通常优于错位,这可能使人类读者难以轻松关联列的所有值。 / p>
假设所有数据行长度相同,以下代码是合适的模型。
data = [
[11, 2, 3, 4, 5, 6],
[1, 22, 3, 4, 5, 7],
[1, 2, 33, 4, 6, 7],
[1, 2, 3, 55, 6, 7],
[1, 2, 4, 5, 66, 7],
[1, 3, 4, 5, 6, 77],
[22, 33, 44, 55, 66, 77],
]
rowlen = len(data[0])
item_format = "{:5d}"
format_string = " ".join(rowlen*[item_format])
for row in data:
print format_string.format(*row)
输出
11 2 3 4 5 6
1 22 3 4 5 7
1 2 33 4 6 7
1 2 3 55 6 7
1 2 4 5 66 7
1 3 4 5 6 77
22 33 44 55 66 77