Pythonプログラム設計入門(3)配列の使用

3618 ワード

1、Pythonの配列は3種類に分けられる.
(1)listの一般的なチェーンテーブルは,初期化後,特定の方法で要素を動的に増加させることができる.定義:arr=[要素]
(2)Tuple固定の配列は,いったん定義するとその要素の個数は変更できない.定義:arr=(要素)
(2)ディクショナリ辞書タイプ,すなわちHash配列である.定義:arr={要素k:v}
2、これらの配列の使用方法とテクニックを具体的に説明します.
(1)listチェーンテーブル配列
a、定義時初期化

   a = [1,2,[1,2,3]] 
 

b、定義時に初期化しない
1次元配列:

   arr = [] 
 

多次元配列:

   arr = [i for i in range(10), 1,[]] #  , i for in xx            ,      i, 
 

次のようになります.

   arr = [i for i in range(5), j for j in range(5), []] 
 

これは間違いです.

   i = 0 
  
j = 0
arr = [i for i in range(5), j for j in range(5), []]

これは正しい
c、del文と:の使い方
start:endで配列内の1つの区間を表すことができます(i>=start and i del arr[0]
        del arr[0, 2]
       newarr = arr[0, 2]

d、遍歴配列:

   for k, v in enumerate(arr): 
  
        print k, v

e、増加要素:
1次元

   arr.append('aaa') 
 

2 D

   arr[0].append('aaa') 
 

任意の場所にarr.insert(n,値)を挿入する場合
もう1つの特殊な使い方は、
arr+=[配列要素]
下付き文字を指定しない場合は、+=で配列要素を増やすことができます.
(2)Tuple固定配列Tupleは可変リストであり,tupleを1つ作成するといかなる方法でも変更できない.次に、具体例を挙げて説明します.

   >>> t = ("a", "b", "c", "d", "e")              #[1]           
  
>>> t
('a', 'b', 'c', 'd', 'e')
>>> t[0]                                       #[2]
'a'
>>> t[-1]                                      #[3] , -1 , 0
'example'
>>> t[1:3]                                     #[4] 1:3 i>=1 and i<3
('b', 'mpilgrim')

Tupleにないメソッド:[1]tupleに要素を追加することはできません.append、extend、insertなどのメソッドはありません.[2]tupleから要素を削除することはできません.removeまたはpopメソッドはありません.[3]tupleで要素を検索することはできません.indexメソッドはありません(indexはインデックスではなく検索です.インデックスは直接下付きでいいです.例えば、t[0]).
tupleを使用するメリット:*Tupleはlistより操作速度が速い.値の定数セットを定義し、リストの代わりにtupleを使用する場合は、定数セットを定義します.*変更する必要のないデータを書き込み保護すると、コードがより安全になります.リストではなくtupleを使用するのは、隠しassert文を持つように、このデータが定数であることを示します.これらの値を変更する必要がある場合は、tupleからlistへの変換を実行する必要があります(特殊な関数を使用する必要があります).*dictionary keysは文字列、整数、および「他のいくつかのタイプ」であることを覚えていますか?Tuplesはこれらのタイプの一つです.Tuplesはdictionaryでkeyとして使用できますがlistはできません.実際、これよりもっと複雑なことです.Dictionary keyは可変でなければなりません.Tuple自体は変えられませんが、listのtupleがあれば可変だと思います.dictionary keyとして使うのは安全ではありません.dictionary keyとして使用できるのは、文字列、整数、またはdictionaryに対して安全なtupleのみです.
Tupleはlistに変換でき、逆も同様です.変換方法:t=list(t)逆:arr=tuple(arr)
(2)ディクショナリ(ハッシュ配列)辞書配列

   #Dictionary        ,        ,          ,       : 
  
# a , b , c , 。
dict_arr = {'a': 100, 'b':'boy', 'c':['o', 'p', 'q']}

# , , key
dict_arr['d'] = 'dog'

# key
print dict_arr.keys()

# value
print dict_arr.values()

#
import types
for k in dict_arr:
    v = dict_arr.get(k)
    if type(v) is types.ListType: # list ,
        print k, '---'
        for kk, vv in enumerate(v):
            print kk, vv
        print '---'
    else:
        print dict_arr.get(k)