私はリストを持っています: [6,7,8,9,10]
、今私はそれを右に2回シフトし、シフトされた位置を で置き換えたいと思い0
ます。出力は次のようになります。[0,0,6,7,8]
出来ますか?
私はリストを持っています: [6,7,8,9,10]
、今私はそれを右に2回シフトし、シフトされた位置を で置き換えたいと思い0
ます。出力は次のようになります。[0,0,6,7,8]
出来ますか?
>>> s = [6,7,8,9,10]
>>> def lpadzero(s, n):
... return [0] * n + s[:-n]
>>> lpadzero(s, 2)
[0, 0, 6, 7, 8]
あなたは直接それを行うことができます:
>>> a = [6, 7, 8, 9, 10]
>>> [0, 0] + a[:3]
[0, 0, 6, 7, 8]
可変数の位置でシフトするにはn
:
>>> [0]*n + a[:len(a)-n]
適切な境界チェックはあなた次第です (n=6
予期しない結果が得られるように、5 つの要素のリストを試してみてください)。
Use slice operation.
>>> a = [6, 7, 8, 9, 10]
>>> del a[-2:]
>>> a[:0] = [0, 0]
>>> a
[0, 0, 6, 7, 8]
You can also use collections.deque if you want fixed size array.
>>> from collections import deque
>>> a = deque([6,7,8,9,10], maxlen=5)
>>> a
deque([6, 7, 8, 9, 10], maxlen=5)
>>> a.extendleft([0, 0])
>>> a
deque([0, 0, 6, 7, 8], maxlen=5)