« C4D Python R12 テスト:複数選択のオブジェクトからスプラインオブジェクト以外を選択解除してみる。 | トップページ | C4D Python R12 テスト:doc.GetSelection()で取得した選択オブジェクトリストから、スプラインオブジェクト以外を削除してみる。 »

C4D Python R12 テスト:リスト型のメソッドを確認

リスト型のメソッドは、Python標準のものなのでC4D特有のものではないのだ。
ただ、ちょっと確認の為に…

list.append() リストの末尾へ追加
list.extend() リストの連結
list.pop() リストから抜き出す
list.insert() リストへ挿入
list.remove() 該当要素の削除
list.index() リスト内を検索
list.count() 該当要素のカウント
list.sort() リストのソート
list.reverse() 並び順の反転

C.O.F.F.E.E.の配列ならば、自分で関数を書かないといけないけど、Pythonは標準で用意されている。

今回は簡単なテスト。

Python
import c4d
import random


def main():
    print '----リストの末尾へ追加----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    b = [10, 11, 12]
    print 'a=', a
    print 'b=', b
    print 'a.append(b)'
    a.append(b)
    print 'a=', a
    print


    print '----リストの連結----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    b = [10, 11, 12]
    print 'a=', a
    print 'b=', b   
    print 'a.extend(b)'
    a.extend(b)
    print 'a=', a
    print


    print '----リストから抜き出す----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    print 'a=', a
    print 'c = a.pop(5)'
    c = a.pop(5)
    print 'a=', a
    print 'c=', c
    print


    print '----リストへ挿入----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    print 'a=', a
    print 'a.insert(3, 13)'
    a.insert(3, 13)
    print 'a=', a
    print


    print '----リストの要素を削除----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    print 'a=', a
    print 'a.remove(3)'
    try:
        a.remove(3)
    except:
        print '該当無し'
    print 'a=', a
    print


    print '----リストを検索----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    print 'a=', a
    print 'd = a.index(5)'
    try:
        d = a.index(5)
    except:
        print '該当無し'
        d = None
    print 'a=', a
    print 'd=', d
    print


    print '----該当要素のカウント----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    print 'a=', a
    e = a.count(5)
    print 'e = a.count(5)'
    print 'a=', a
    print 'e=', e
    print


    print '----ソート----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    print 'a=', a
    a.sort()
    print 'a.sort()'
    print 'a=', a
    print


    print '----並び順の反転----'
    a = []
    for id in xrange(10):
        a.append(int(random.random()*10))
    print 'a=', a
    a.reverse()
    print 'a.reverse()'
    print 'a=', a
    print


if __name__ == '__main__':
    main()

Pythonのrandomモジュールは、実行するたび結果が変わるのだ…
下の結果とは異なりますが…
seedを設定すると、結果も固定できますけど。

----リストの末尾へ追加----
a= [4, 3, 1, 2, 3, 8, 2, 5, 3, 6]
b= [10, 11, 12]
a.append(b)
a= [4, 3, 1, 2, 3, 8, 2, 5, 3, 6, [10, 11, 12]]

append()でリストの要素に追加できますが、リストを追加すると1要素として追加されるのだ…

----リストの連結----
a= [6, 1, 9, 9, 2, 5, 7, 3, 1, 1]
b= [10, 11, 12]
a.extend(b)
a= [6, 1, 9, 9, 2, 5, 7, 3, 1, 1, 10, 11, 12]

extend()でリストを追加すると、要素1つ1つが要素として結合されるのね。

----リストから抜き出す----
a= [0, 7, 0, 2, 2, 5, 1, 9, 9, 0]
c = a.pop(5)
a= [0, 7, 0, 2, 2, 1, 9, 9, 0]
c= 5

pop()でインデックスを指定してリストから抜き出す。指定した要素はリストからは削除されリストのサイズが1つ減るのだ。

----リストへ挿入----
a= [3, 1, 0, 3, 1, 1, 7, 1, 8, 0]
a.insert(3, 13)
a= [3, 1, 0, 13, 3, 1, 1, 7, 1, 8, 0]

insert()にインデックスと要素を指定して挿入するのだ。リストのサイズが1つ増えるのだ。

----リストの要素を削除----
a= [6, 8, 1, 5, 1, 3, 1, 5, 7, 9]
a.remove(3)
a= [6, 8, 1, 5, 1, 1, 5, 7, 9]

remove()に削除する要素を指定する。リストの先頭に近い該当要素が削除される。リストのサイズも1つ減るのだ。

----リストを検索----
a= [0, 3, 4, 7, 8, 8, 9, 1, 5, 1]
d = a.index(5)
a= [0, 3, 4, 7, 8, 8, 9, 1, 5, 1]
d= 8

index()に要素を指定してリストを検索するのだ。そうすると先頭に近い該当要素のインデックスが返ってくるのだ。

----該当要素のカウント----
a= [7, 4, 4, 5, 6, 6, 0, 9, 7, 5]
e = a.count(5)
a= [7, 4, 4, 5, 6, 6, 0, 9, 7, 5]
e= 2

count()に要素を指定してリスト内の該当要素をカウントするのだ。

----ソート----
a= [8, 3, 3, 6, 6, 1, 0, 6, 8, 3]
a.sort()
a= [0, 1, 3, 3, 3, 6, 6, 6, 8, 8]

sort()を使うとリスト内を小さい順にソートするのだ。

----並び順の反転----
a= [7, 4, 8, 1, 0, 7, 8, 5, 3, 6]
a.reverse()
a= [6, 3, 5, 8, 7, 0, 1, 8, 4, 7]

reverse()は並び順を反転させるのだ。

なるほど、こんな具合ですか…

|

« C4D Python R12 テスト:複数選択のオブジェクトからスプラインオブジェクト以外を選択解除してみる。 | トップページ | C4D Python R12 テスト:doc.GetSelection()で取得した選択オブジェクトリストから、スプラインオブジェクト以外を削除してみる。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« C4D Python R12 テスト:複数選択のオブジェクトからスプラインオブジェクト以外を選択解除してみる。 | トップページ | C4D Python R12 テスト:doc.GetSelection()で取得した選択オブジェクトリストから、スプラインオブジェクト以外を削除してみる。 »