No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

『内包表記』って便利 by Python

Pythonには”リスト内包表記”なるものがあるそうな。
初めて目にした時は、「なんじゃこのケッタイな書き方は!」と思ったものです。

リスト内包表記をザックリ説明すると、
『for分とかif分とか使って複数行必要だった処理が一行ですむよ。しかも処理が早いよ。でもちょっと読みづらいよ』
っていう書き方でしょうか。

ものの本によると、”リスト内包表記とは、あるリストを元にして別のリストを作るための記法のことです”、だそうです。

ちょっとMayaのpyemlで普通の書き方と、それを内包表記で書いた例を作ってみました。
選択したオブジェクトのうち、Meshのみをリストで返すというものです。

import pymel.core as pm
sel = pm.selected()
MeshList = []
#--------------------------------------
for i in sel:
    if i.nodeType() == "mesh":
        MeshList.append(i)
#--------------------------------------
print MeshList

これをリスト内包表記を使って書くと

import pymel.core as pm
sel = pm.selected()
#リスト内包表記
#----------------------------------------------------
MeshList = [x for x in sel if x.nodeType() == "mesh"]
#----------------------------------------------------
print MeshList

コメントで囲まれた部分を内包表記で書き換えました。
for分とif分を組み合わせたような書き方のが、リスト内包表記です。
比べるとすっきりした印象があります。
ここではfor分とif分の二つを内包表記で書き換えましたが、可読性が許す限りいくつでも内包できます。

以上、最近覚えたpythonのリスト内包表記でした。

参考:
http://docs.python.jp/2/tutorial/datastructures.html

Related Posts Plugin for WordPress, Blogger...

関連記事

  1. 2014.04.07

    AE Tips04 (Maya2AE)

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

アンケート

あなたはプロのCG屋さんですか?

View Results

Loading ... Loading ...

言語切り替え

  • English (United States)
  • 日本語

Archives

  • 2017 (4)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (54)

スポンサードリンク