例如我有一个列表
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 :(得分:3)
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
答案 1 :(得分:2)
print([data[0][0]] + data[0][2:4])
答案 2 :(得分:1)
如果您希望打印来自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
。
答案 3 :(得分:0)
如果要忽略某些索引,可以使用enumerate
:
" ".join([str(i) for ind,i in enumerate(data[0][0:4]) if ind != 1])
答案 4 :(得分:0)
这是我的看法:
>>> 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]