如何格式化列表进行打印?

时间:2017-01-06 13:58:22

标签: python list printing format

如何格式化python列表进行打印?

示例我有:

  std::cout << "2: ";
  MyClass * p2 = new (std::nothrow) MyClass;
      // allocates memory by calling: operator new (sizeof(MyClass),std::nothrow)
      // and then constructs an object at the newly allocated space

我希望格式化列表,使其打印如下:

list = ['Name1 ', Price1, Piece1, 'Name2 ', Price2, Piece2, 'Name3', Price3,
        Piece3]

7 个答案:

答案 0 :(得分:2)

如果您认为Price1Price2是字符串(您忘记了'标志)

一个解决方案:

lst = ['Name1 ', 'Price1', 'Piece1', 'Name2 ', 'Price2', 'Piece2', 'Name3', 'Price3', 'Piece3']

for i in xrange(0, len(lst), 3):
    print(lst[i] + "\n" + lst[i+1] + " - " + lst[i+2])

返回:

Name1 
Price1 - Piece1
Name2 
Price2 - Piece2
Name3
Price3 - Piece3

也永远不要命名你的变量list列表是python中已经使用过的关键字

答案 1 :(得分:1)

另一个丑陋的解决方案:

print("\n".join([lst[i] + "\n" + lst[i+1] + " - " + lst[i+2] for i in range(0, len(lst), 3)]))

答案 2 :(得分:1)

for i in range(0, len(seq), 3):
    name, price, piece = seq[i:i+3]

然后用你的作品做你想做的事。

答案 3 :(得分:1)

print(*['{}\n{} - {}'.format(*lst[i:i + 3]) for i in range(0, len(lst), 3)], sep='\n')

答案 4 :(得分:0)

list0 = ['Name1 ', 1, 2, 'Name2 ', 1, 2, 'Name3', 2, 1]
print '\n'.join(['{}\n{}-{}'.format(x,y,z) for (x,y,z) in zip(list0[::3],list0[1::3],list0[2::3])])

输出

Name1 
1-2
Name2 
1-2
Name3
2-1

答案 5 :(得分:0)

ls = ['Name1 ', 'Price1', 'Piece1', 'Name2 ', 'Price2', 'Piece2', 'Name3', 'Price3', 'Piece3']

for i in range(0, len(ls), 3):
    print(*( ls[i:i + 3]))

答案 6 :(得分:0)

我会做的是这个

#Declare some variables for example
Price1 , Price2 , Price3 = 12 , 57 , 33
Piece1 , Piece2 , Piece3 = 5 , 4 , 2

#Create a two-dimensional array for more clear code
li = [['Name1', Price1 , Piece1] , ['Name2 ', Price2, Piece2] , ['Name3', Price3, Piece3]]

#Itterate through the array and print 
for i in range(len(li)) :
    print "\n"
    for y in range(len(li[i])) :
        if y == 0 :
            print li[i][0] 
        else:
            print li[i][1] , " , " , li[i][2] 

当然可以更有效地改进。如果您有任何问题可以自由提问,我希望我能帮到您。