配列から要素を1つおきに出力するリスト内包表記を作成したいと思います。どうすればいいですか?
array = [1,2,3,4,5,6,7,8,9]
output: 2
3
4
5
6
7
8
9
配列から要素を1つおきに出力するリスト内包表記を作成したいと思います。どうすればいいですか?
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]
です。
「配列から1つおきの要素」..他のすべての要素を出力することを意味しますか?
リスト内包表記を本当に使用したい場合は、2つあります。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]
コードの最終的な使用法、したがってそれを達成するための最良の方法は何かについての質問は少し不明確です。ただし、リストから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]
これは、ステップパラメータを変更することにより、 n番目ごとの要素を選択するように一般化できます。たとえば、3つおきの要素を選択します。
>>> third = array[::3]
>>> third
[1, 4, 7]