Python でのリスト代入の問題について質問する
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-12 09:24:18
0
6
980
###なぜ###

s = [1, 2, 3, 4, 5, 6]
i = 0

i = s[i] = 3
結果は次のようになります。 : [3、2、3、4、5、6] の代わりに [1、2、3、3、5、6]

#
女神的闺蜜爱上我
女神的闺蜜爱上我

全員に返信(6)
Ty80

以下に私が書いた記事を参照してください: Python: The Pitfalls of Chained Assignment

いいねを押す +0
扔个三星炸死你

課題ステートメントによると:

リーリー

と同等です リーリー

つまり: i=s[i]=3 は次と同等です:

リーリー

Python の 代入は演算子ではなくステートメントです。そのため、式 (a=b) は構文エラーを生成し、代入ステートメントには値がありません

いいねを押す +0
刘奇

参考 https://stackoverflow.com/que...

と同等です リーリー

まず、iが3になり、次に値s[i]が代入されます

いいねを押す +0
滿天的星座

結果を振り返ると、s[i] = 3よりも前にi=3が実行されていました。

二つの文に分けて書くことはできないでしょうか?

いいねを押す +0
仅有的幸福

PythonTutor.com を使用できます
i = s[i] = 3 この行は基本的に i=3 と s[i]=3 を連続して実行します

いいねを押す +0
typecho

i = s[i] = 3 等价于 i = 3; s[i] = 3

dis モジュールを使用して実行プロセスを分析します:

リーリー

書き分け例

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート