我想编写一个列表解析,它将每隔一个元素从数组中打印一个元素。 我该怎么做?
array = [1,2,3,4,5,6,7,8,9]
output: 2
3
4
5
6
7
8
9
答案 0 :(得分: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]
。
答案 1 :(得分: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]
答案 2 :(得分: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]
这可以推广到通过改变步骤参数来选择每个 nth 元素,例如,选择每个第三个元素:
>>> third = array[::3]
>>> third
[1, 4, 7]