- 2008-05-30 (金)
- tutorial/data
fromhttp://nodebox.net/code/index.php/Lists
変数はデータの全体のリストを保持できる。
リストはスクリプトが複雑さを増大させた時、不可欠になる。:
リストは所属を同じにする情報のbitsやpiecesをグループ化すつ方法である。
例えば、スクリーンに描画するための全てのword、スクリプトが選択できる全ての色やフォント等である。
NodeBoxでのリストは実生活においてのものとそう変わらない。:
することの概要や、買い物リスト、名前と住所表、を保持出来る。
実生活との主な違いは、たいていリストは1から始めるが、プログラミングのLISTはゼロか始まるということです。
Creating a list
このコードは何に見えますか?
以下のコードはNodeBoxで定義された、買い物リストである。
リストはsquare brackets[]で囲まれて定義されている。
リスト内のどのアイテムもテキスト(string)である。したがって、クォートで埋め込まれている。
リストはgroceriesという変数名で割り当てられている。しかし、変数名は好きなように変えられる。gとかstufftodoといったように。
groceries = ["apples", "pears", "carrots", "cucumber", "yoghurt", "milk"]
print len(groceries)
>>> 6
listは、strings、numbers listsどんな種類でも含めることが出来る。
len(list)コマンドはリスト内のアイテムの数を返す。
Retrieving and editing items in a list
変数名の後に、欲しいアイテムのインデックスを角括弧[]内に入れることで、直接リスト内のアイテムを参照出来る。
print groceries[0]
>>> apples
groceries[3] = "banana"
print groceries
>>> ["apples", "pears", "carrots", "banana", "yoghurt", "milk"]
リストのスタートは0からだということを忘れないで下さい。
上の例で、何故、4番目のエレメントが置き換えられたのか?
4番目のエレメントのインデックスは3だからです。
Adding items to the list
リスト内のデータは時間の流れる過程で変えることが出来る。
新しいアイテムを足すことも、古いアイテムを消すことも出来る。
これは丁度、買い物リストのメモ書きに書き加えたり、消したりするようなものです。
リストの終りにアイテムを追加する為に:
groceries.append("eggs")
print groceries
>>> ["apples", "pears",
>>> "carrots", "banana",
>>> "yoghurt", "milk",
>>> "eggs"]
リストから取り除くには:
del groceries[6]
アイテムは list.insert(i, item) コマンドを使えば、リストの途中に挿入出来る。
iパラメータはエレメントを入れたいポジションである。
Looping through the list
リストをルーピングすることは、モールへ行って、買い物リストを上から下へ解消していくのと似ている。:
最初のアイテムはリンゴで、それを持ったら、次は梨を取って…というように。
リストの中の全アイテムを回ることはデータを取り扱う時、最も不可欠な要素の一つである。
少量の時は、あなたは手動でアイテムを検索できた、しかし、例えば、スクリーンに文章をを描画したい時等、リストが数百、数千のアイテムを持つ場合は無理。
for文によるループ:
for item in groceries:
print "buy some " + item
>>> buy some apples
>>> buy some pears
>>> buy some carrots
>>> buy some banana
>>> buy some yoghurt
>>> buy some milk
>>> buy some eggs
上の例では、for文以下のインデントされたコマンドが、リストの各アイテムに対して実行される。
item変数は、リスト内の各アイテムに連続して含まれる。
その後、ループは終る。
Random items from the list
choice()コマンドを使って、コード自身に、リストからアイテム決めさせることが出来る。
Example
これは、コンポジションを作成するために小さいリストを使うことに関して、とてもbraindeadだという例です。
このスクリプトは、wordに使われるリストがあり、色に使われるリストがある。
その後スクリプトは自身で自由に動き出す。:
2つのリストからランダムに単語と色を選び、ランダムなサイズと角度でスクリーンに描画する。
異なる実行においても、単語と色が限定されているため、ある一貫性を持つ。
コード
words = ["Lists", "are", "fun"]
colors = [color(1,0,0), color(1,1,1), color(0,0,0)]
for i in range(40):
x = random(WIDTH)
y = random(HEIGHT)
rotate(random(360))
fontsize(random(10,100))
fill(choice(colors))
text(choice(words), x, y)
Dictionaries
Dictionaries(辞書) は、文字列のインデックスリスト、キーを持っている非常に役立つ種類のリストで、キーはあなた自身で定義する。
それぞれのキーは単一であり、リスト内のアイテムが参照する。
辞書は[]の代りにcurly braces{}を使って作成される。
heading = {}
heading["font"] = "ConduitITC-Medium"
heading["size"] = 18
heading["fill"] = color(1,0,0)
print heading.keys()
>>> ["font", "fill", "size"]
print heading["size"]
>>> 18
if heading.has_key("fill"): print "found!"
>>> found!
More on lists
リストに関して、あなたが出来ることはもっとたくさんある、ソートや反転、リストの為のフィルタ機能の記述。
フルドキュメントはここ
http://docs.python.org/tut/node7.html#SECTION007100000000000000000
Pythonのドキュメントの中にある。
- Newer: Repetition ≫
- Older: ≪ Variables