如何格式化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]
答案 0 :(得分:2)
如果您认为Price1
和Price2
是字符串(您忘记了'
标志)
一个解决方案:
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]
当然可以更有效地改进。如果您有任何问题可以自由提问,我希望我能帮到您。