intをリストの範囲に追加するにはどうすればよいですか?スライスでリスト要素を追加するには?
たとえば、インデックスを(a,b)
の間に追加する必要がある場合、なぜ私のコードは機能しませんか?
k = 7
a = 0
b = 2
List = [1,2,3,4,5,6]
List[a:b+1] += k
「int」オブジェクトは反復可能ではありません。
私の予想される出力は[8,9,10,4,5,6]
です。
intをリストの範囲に追加するにはどうすればよいですか?スライスでリスト要素を追加するには?
たとえば、インデックスを(a,b)
の間に追加する必要がある場合、なぜ私のコードは機能しませんか?
k = 7
a = 0
b = 2
List = [1,2,3,4,5,6]
List[a:b+1] += k
「int」オブジェクトは反復可能ではありません。
私の予想される出力は[8,9,10,4,5,6]
です。
forループを使用してリストを反復処理する必要があります。
for i in range(a, b+1):
List[i] += k
あなたはこれを行うことができます。
new_list = List[0:a] + map(lambda x : x + k, List[a:b+1]) + List[b+1:]
出力:複数の要素を含む
>>> new_list
[8, 9, 10, 4, 5, 6]
これは正しくありません。まず、 '.index'は線形演算であるため、非常に非効率的です。したがって、区間の長さは2次となります。次に、 '.index'はリストの**最初の**インスタンスのインデックスを返します。これはあなたのロジックを破ります。 –
たとえば、a、b、およびkに同じ値を持つ '[1,2,3,1,1,1,1]'で試してください。 –
今はどうですか? @ juanpa.arrivillaga – Jarvis
付加は、 'numpy'アレイではなく、リストの作品。リストの要素を1つずつ置き換える必要があります。 – hpaulj
'+'サインオンリストは、指定された引数でリストを拡張しようとします。これは 'iterable'でなければなりません。あなたのカスでは、 'k'(' 7')はそうではないので、あなたがエラーを起こすのです。 '[1,2] + [3、4]'を試してください。 – math2001