Pythonプログラム設計入門(3)配列の使用
3618 ワード
1、Pythonの配列は3種類に分けられる.
(1)listの一般的なチェーンテーブルは,初期化後,特定の方法で要素を動的に増加させることができる.定義:arr=[要素]
(2)Tuple固定の配列は,いったん定義するとその要素の個数は変更できない.定義:arr=(要素)
(2)ディクショナリ辞書タイプ,すなわちHash配列である.定義:arr={要素k:v}
2、これらの配列の使用方法とテクニックを具体的に説明します.
(1)listチェーンテーブル配列
a、定義時初期化
b、定義時に初期化しない
1次元配列:
多次元配列:
次のようになります.
これは間違いです.
これは正しい
c、del文と:の使い方
start:endで配列内の1つの区間を表すことができます(i>=start and i
d、遍歴配列:
e、増加要素:
1次元
2 D
任意の場所にarr.insert(n,値)を挿入する場合
もう1つの特殊な使い方は、
arr+=[配列要素]
下付き文字を指定しない場合は、+=で配列要素を増やすことができます.
(2)Tuple固定配列Tupleは可変リストであり,tupleを1つ作成するといかなる方法でも変更できない.次に、具体例を挙げて説明します.
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)ディクショナリ(ハッシュ配列)辞書配列
(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)