我有一个包含(x,y,value)等元素的列表如何将该列表打印为数组,其中带有x的列表的所有元素都在同一行?
我尝试了这个,但它不起作用
def print_list(l,size):
for x in l:
print x[2]
我的主要问题是我不知道如何在同一行中打印列表元素,因此会以新方式打印每个元素。
编辑:我不够清楚,我的列表模拟了一个数组,例如size = 2,我的列表会有这样的元素:
[0,0,value1]
[0,1,value2]
[1,0,value3]
[1,1,value3]
我的功能以这种方式打印:
value1
value2
value3
value4
我想修改我的功能,以便像这样打印:
value1 value2
value3 value4
答案 0 :(得分:2)
编辑:
这应该有效:
def print_list(l,size):
for n in range(0, len(l), size):
values = [str(x[2]) for x in l[n:n+size]]
print(' '.join(values))
原始答案:
def print_list(l,size):
for x in l:
print x[2],
from __future__ import print_function
def print_list(l,size):
for x in l:
print(x[2], end='')
注意:在print
语句后添加逗号会在您打印的字符串后添加空格。如果您不想要空格,那么最好使用print
函数。
答案 1 :(得分:0)
def print_list(l,size):
for x in l:
print x[0]
答案 2 :(得分:0)
pprint
,或者漂亮的印刷品,对于这种类型的东西来说非常棒。开箱即用,它不会像你要求的那样给你输出,但它足够灵活,可以用于很多其他情况。
from pprint import pprint
pprint(l, width=width)
答案 3 :(得分:-1)
您可以在numpy模块中生成数组,这些数组在打印时会将其条目排列成整齐的行和列。
import numpy
lst = [('a',1,'hi'), ('b',2,'my'), ('c',3,'name'), ('d',4,'is')]
arr = numpy.array(lst)
print(arr)
如果您希望在同一行上看到1,2,3,4
而不是在同一列中,请转置该数组。
arr_t = arr.transpose()
print(arr_t)
希望这会有所帮助。如果我误解了你的问题,请毫不犹豫地指出它。