ホーム>source

無効な構文エラーをスローする次のようなコードセグメントがあります:

lst = [0, 0, 0]
new_lst = [lst[-1] = i + 1 for i in range(3)]

基本的に、 new_lst が欲しい  すべてのリストが lst になるリストのリスト  しかし、最後の要素が変更されました。 Pythonでこれを行う方法はありますか?

あなたの答え
  • 解決した方法 # 1

    割り当てができるのは、それらがスタンドアロンのステートメントである場合のみです。リスト内包ではありません。これの他の例は、 if のような制御ステートメントにあります。 sまたは for s

    In [945]: lst = [0, 0, 0]
    In [946]: new_lst = [lst[:-1] + [i + 1] for i in range(3)]
    In [947]: new_lst
    Out[947]: [[0, 0, 1], [0, 0, 2], [0, 0, 3]]
    
    

    lst[:-1]   lst からすべての要素を取ります  最後と [i + 1] を除く  リストの最後に追加されます

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ android - LinearLayoutにプログラムでビューを追加しても、表示されない