-6

我想编写一个列表理解,它将每隔一个元素从数组中打印一个元素。我该怎么做?

array = [1,2,3,4,5,6,7,8,9]
output: 2
3
4
5
6
7
8
9
4

3 回答 3

3
array = [1,2,3,4,5,6,7,8,9]

newarray = [array[i] for i in range(0, len(array), 2)]

print(newarray)

结果是[1, 3, 5, 7, 9]

于 2012-06-09T02:18:25.447 回答
1

这个问题有点不清楚代码的最终用途是什么,因此完成它的最佳方法是什么。但是如果你想从列表中选择第二个元素,你可以使用切片表示法:

>>> array = [1,2,3,4,5,6,7,8,9]
>>> odd = array[::2]
>>> odd
[1, 3, 5, 7, 9]
>>> even = array[1::2]
>>> even
[2, 4, 6, 8]

这可以概括为通过更改 step 参数来选择每第 n 个元素,例如,选择每第三个元素:

>>> third = array[::3]
>>> third
[1, 4, 7]
于 2012-06-09T02:36:18.697 回答
1

“数组中的一个元素每隔一个元素” ..意思是打印出每个其他元素?

如果你真的想使用列表推导,这里有两个,一个收集偶数索引条目,另一个收集各自列表中的奇数,然后打印出来。

evens = [elem for i, elem in enumerate(array) if not (i % 2)]
odds  = [elem for i, elem in enumerate(array) if i % 2]

print evens # entries at even index value
[1, 3, 5, 7, 9]

print odds  # entries at odd index values
[2, 4, 6, 8]
于 2012-06-09T02:15:23.247 回答