[解決済み] Pythonのコロンイコール(:=)は何を意味するのですか?
2022-08-30 09:27:46
質問
の部分はどうなっているのでしょうか?
:=
オペランドの意味は何ですか?
誰かこのコードのスニペットをどのように読むか説明できますか?
node := root, cost = 0
frontier := priority queue containing node only
explored := empty set
どのように解決するのですか?
回答を更新しました。
質問の文脈では、擬似コードを扱っていますが
はPython 3.8から
,
:=
は実際には有効な演算子で、式中の変数への代入を可能にします。
# Handle a matched regex
if (match := pattern.search(data)) is not None:
# Do something with match
# A loop that can't be trivially rewritten using 2-arg iter()
while chunk := file.read(8192):
process(chunk)
# Reuse a value that's expensive to compute
[y := f(x), y**2, y**3]
# Share a subexpression between a comprehension filter clause and its output
filtered_data = [y for x in data if (y := f(x)) is not None]
参照 PEP 572 を参照してください。
オリジナルの回答
あなたが見つけたものは 疑似コード
<ブロッククオート擬似コード は、コンピュータプログラムや他のアルゴリズムの動作原理を非公式に高水準で記述したものです。 コンピュータプログラムや他のアルゴリズムの動作原理を説明した非公式な高水準の記述です。
:=
は実際には代入演算子です。Pythonでは、これは単に
=
.
この擬似コードをPythonに翻訳するためには、参照されているデータ構造と、もう少しアルゴリズムの実装を知る必要があります。
擬似コードに関するいくつかの注意点です。
-
:=
は代入演算子か=
Python では -
=
は等号演算子か==
Python では - 特定のスタイルがあり、あなたのマイレージは異なるかもしれません。
パスカルスタイル
procedure fizzbuzz
For i := 1 to 100 do
set print_number to true;
If i is divisible by 3 then
print "Fizz";
set print_number to false;
If i is divisible by 5 then
print "Buzz";
set print_number to false;
If print_number, print i;
print a newline;
end
Cスタイル
void function fizzbuzz
For (i = 1; i <= 100; i++) {
set print_number to true;
If i is divisible by 3
print "Fizz";
set print_number to false;
If i is divisible by 5
print "Buzz";
set print_number to false;
If print_number, print i;
print a newline;
}
波括弧の使い方と代入演算子の違いに注意してください。
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] 誰かPythonで__all__を説明してくれませんか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例