我想编写一个列表理解,它将每隔一个元素从数组中打印一个元素。我该怎么做?
array = [1,2,3,4,5,6,7,8,9]
output: 2
3
4
5
6
7
8
9
我想编写一个列表理解,它将每隔一个元素从数组中打印一个元素。我该怎么做?
array = [1,2,3,4,5,6,7,8,9]
output: 2
3
4
5
6
7
8
9
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]
。
这个问题有点不清楚代码的最终用途是什么,因此完成它的最佳方法是什么。但是如果你想从列表中选择第二个元素,你可以使用切片表示法:
>>> 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]
“数组中的一个元素每隔一个元素” ..意思是打印出每个其他元素?
如果你真的想使用列表推导,这里有两个,一个收集偶数索引条目,另一个收集各自列表中的奇数,然后打印出来。
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]