如何从Python列表中打印单独的项目?

问题描述:

比如我有一个列表如何从Python列表中打印单独的项目?

data=[[1, 2, 3, 4, 5, 6, 7], [2, 4, 3, 6, 5]] 

我想从数据 的第一阵列打印数字1,3,4,我找不到我怎么可以打印 到目前为止我的代码

print(data[0][0:4]) 

我该如何让它不打印2(我使用Python 3.2)?

+0

边注:开关到Python 3.3或3.4 – inspectorG4dget 2014-10-28 19:25:03

+3

这是什么逻辑后面忽略了这些值?我的意思是你想要达到什么目的? – karthikr 2014-10-28 19:25:42

In [288]: data=[[1, 2, 3, 4, 5, 6, 7], [2, 4, 3, 6, 5]] 

In [289]: for i in [0,2,3]: 
    .....:  print(data[0][i], end=' ') 
    .....:  
1 3 4 
+0

的括号。最后可能需要一个额外的'print()'。但除此之外,非常好的方式来显示这一点,没有任何新手不友好的简化。 – abarnert 2014-10-28 19:26:00

print([data[0][0]] + data[0][2:4]) 
+0

这将给出一个'TypeError';你用一个整数连接一个列表。 – 2014-10-28 19:22:38

+0

我忘记了'data [0] [0]' – RPGillespie 2014-10-28 19:24:42

如果你想让它从data[0][0:4]打印的一切,是不是数字2,你可以这样做:

print([x for x in data[0][0:4] if x != 2]) 

这可以扩展到,例如,甚至没有打印数字:

print([x for x in data[0][0:4] if x % 2 != 0]) 

如果您想“片围绕着”不管是在data[0][1],你可以将两者连接起来片周围:

print(data[0][0:1] + data[0][2:4]) 

这也可以扩展到,例如,从[1:3]而不是仅仅[1:2]删除整个片段:

print(data[0][0:1] + data[0][3:4]) 

虽然它不适用于消除不连续的组(如索引1,3或8中的任何内容);为此,你可能需要enumerate

如果你想忽略某些指标,你可以使用enumerate

" ".join([str(i) for ind,i in enumerate(data[0][0:4]) if ind != 1]) 

这是我对此采取:

>>> import pyexcel as pe 
>>> data=[[1,2,3,4,5,6,7],[2,4,3,6,5]] 
>>> m=pe.sheets.MultipleFilterableSheet(data) 
>>> # get rid of other columns 
>>> m.filter(pe.filters.ColumnFilter([1,4,5,6])) 
>>> print(pe.utils.to_array(m)) 
[[1, 3, 4], [2, 3, 6]] 
>>> print m.row[0] 
[1, 3, 4] 
>>> print m.row[0][0:3] 
[1, 3, 4]