打印列表为数组Python

时间:2014-02-26 12:37:50

标签: python

我有一个包含(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

4 个答案:

答案 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))

原始答案:

使用the print statement

def print_list(l,size):
    for x in l: 
        print x[2],

或使用the print function

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)

希望这会有所帮助。如果我误解了你的问题,请毫不犹豫地指出它。