削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
s/内包表現/内包表記/6
タグ: 2017年版ソースエディター
308 行
 
 
== リストとリスト内包表 ==
リストは<code>list = ['A', 'B', 'C']</code>のように表し<code>list[0]</code>、<code>list[1]</code>、<code>list[2]</code>のようにアクセスしますが、Pythonでは[[JavaScript|ECMAScript]]でも一時採用が検討されたリスト内包表をサポートしています<ref>ECMAScriptで内包表のプロポーザルが検討されGeckoで先行実装されましたが、レビューの結果mapを始めとするArrayのメソッドのメソッドチェインやスプレッド構文でより簡素に記述できるため不採用となり、Geckoからも内包表のサポートは削除されました。
;ECMAScriptに提出された内包表の使用例:<syntaxhighlight lang=js>
const ary1 = [for (x of ['A','B','C']) for (y of ['X','Y','Z']) x + '' + y]; // [ 'AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ' ]
const ary2 = [for (i of [0,1,2,3,4,5]) if (i > 2) i] // [3, 4, 5]
323 行
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
リスト内包表は非常に強力です。これを使ってAからZまでの文字を要素に含むリストを作るには次のようにします。<code>chr()</code>は文字コードを文字に、<code>ord()</code>は文字を文字コードに変換します。なお、十六進法の整数リテラルは<code>0xdeadbeef</code>のように "0x" から始まります。<code>3735928559L</code>のように末尾にLの付く整数リテラルはlong型です。
 
>>> [ chr(i) for i in range( ord('A'), ord('Z') + 1 ) ]