2014-02-26 68 views
-1

我有一个像元素(x,y,值)的列表如何将列表打印为数组,其中列表中的所有元素都与x在同一行上?打印列表作为数组Python Python

我试过,但它不工作

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

我的主要问题是,我不知道如何打印列表的元素在同一直线上,造成这种方式打印每个元素一条新线。

编辑:我不太清楚我的名单模拟例如用于大小= 2我的列表中的数组将有这样的内容:

[0,0,value1] 
[0,1,value2] 
[1,0,value3] 
[1,1,value3] 

我的功能打印这样说:

value1 
value2 
value3 
value4 

我想修改我的功能,以进行打印:

value1 value2 
value3 value4 
+0

'打印X [0],'完蛋了:) – thefourtheye

回答

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函数。

+0

我试图让你的编码风格不变。但是,你真的应该用空格分隔参数:''def print_list(l,size):''。另外,你不应该使用''l''作为变量名称。这很容易误读。如果你真的想要列出''l'',请改为使用''L''。 – tsroten

+0

Thx我会记住你的建议! – JmRag

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

他想在同一行中的元素,你可能想使用'打印X [0],' – thefourtheye

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

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

0

pprint或漂亮的印花,对于这种类型的东西来说非常棒。开箱即用,它不会像您所询问的那样给出完全相同的输出结果,但它足够灵活,可以用于很多其他情况。

from pprint import pprint 

pprint(l, width=width)