Python学習ノート-6.ListとTuple
18549 ワード
転載:http://www.xwy2.com/article.asp?id=110
List,Tuple
リスト(List):類似.NET ArrayList/List.タプル(Tuple):リストの読み取り専用版.1.変換リスト()/tuple()関数を使用して、リストとメタグループの間で変換できます.
Code
>>>>>> a = ['a', 'b', 'c'] >>>>>> a ['a', 'b', 'c'] >>>>>> b = tuple(a) >>>>>> b ('a', 'b', 'c')('a', 'b', 'c') >>>>>> c = list(b) >>>>>> c ['a', 'b', 'c'] >>>>>>
この2つの関数は文字列パラメータを受け入れるときに面白いです.
Code
>>>>>> list("xwy2.com") ['x', 'w', 'y', '2', '.', 'c', 'o', 'm'] >>>>>> tuple("xwy2.com")
2.演算子アクションリストは、演算子アクションをサポートします.
Code
>>>>>> [1, 2] * 2 [1, 2, 1, 2] >>>>>> [1, 2] + [3, 4] [1, 2, 3, 4] >>>>>>
3.in/not inは、in/not inを使用して要素が含まれているかどうかを判断できます.
Code
>>>>>> a = [1, 2, 3] >>>>>> 1 in a True >>>>>> 4 in a False >>>>>> b = (1, 2, 3) >>>>>> 2 in b True >>>>>>
4.range()range()関数を使用して整数リストを取得したり、演算したり、フィルタ条件を追加したりすることもできます.
Code
>>>>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>>>>> range(2, 10, 2) [2, 4, 6, 8] >>>>>> range(2, 7) [2, 3, 4, 5, 6] >>>>>> [x*2 for x in range(10)] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>>>>> [x for x in range(10) if x%2>0] [1, 3, 5, 7, 9] >>>>>> [x + 1 for x in range(10) if x%2==0] [1, 3, 5, 7, 9] >>>>>>
5.Slicesは文字列と同様に、シーケンス番号またはスライスでアクセスできます.
Code
>>>>>> b = (1,2,3) >>>>>> b[-1] 3 >>>>>> b[1:-1] (2,)(2,) >>>>>> b=(1,2,3) >>>>>> b[1] 2 >>>>>> b[1:] (2, 3)(2, 3) >>>>>> b[-1] 3 >>>>>> b=[1,2,3] >>>>>> b[1] = 100 >>>>>> b [1, 100, 3] >>>>>>
6.関連方法の基本方法:
Code
>>>>>> a = ['a','b','c'] >>>>>> a.index('b') 1 >>>>>> a += ['d'] >>>>>> a ['a', 'b', 'c', 'd'] >>>>>> a += ['b'] >>>>>> a ['a', 'b', 'c', 'd', 'b'] >>>>>> a.count('b') 2 >>>>>> a.insert(1, 's') >>>>>> a ['a', 's', 'b', 'c', 'd', 'b'] >>>>>> a.remove('s') >>>>>> a ['a', 'b', 'c', 'd', 'b'] >>>>>> a.pop(2) 'c' >>>>>> a ['a', 'b', 'd', 'b'] >>>>>> a.reverse() >>>>>> a ['b', 'd', 'b', 'a'] >>>>>> a.sort() >>>>>> a ['a', 'b', 'b', 'd'] >>>>>> a.extend(['e','f']) >>>>>> a ['a', 'b', 'b', 'd', 'e', 'f'] >>>>>> a.append('m', 'n') Traceback (most recent call last): File "", line 1, in a.append('m', 'n') TypeError: append() takes exactly one argument (2 given) >>>>>> a.append(['m','n']) >>>>>> a ['a', 'b', 'b', 'd', 'e', 'f', ['m', 'n']] >>>>>>
フィルタ()を使用してフィルタリングすることもできます.
Code
>>>>>> a = range(10) >>>>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>>>>> def divfilter(i): return i%2 == 0 >>>>>> filter(divfilter, a) [0, 2, 4, 6, 8] >>>>>>
上のコードは、次のように簡単に書くこともできます.
Code
>>>>>> filter(lambda i: i%2==0, range(10)) [0, 2, 4, 6, 8] >>>>>>
functionパラメータ(最初のパラメータ)がNoneの場合、空の値をフィルタリングするために使用できます.
Code
>>>>>> b = ['a', '', [], [1,2]] >>>>>> filter(None,b) ['a', [1, 2]] >>>>>>
map()類似.NETのArray.Foreach()
Code
>>>>>> map(lambda i:i*2, range(10)) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>>>>>
また、reduce()を使用して要素を統計することもできます.
Code
>>>>>> import operator >>>>>> reduce(operator.add, range(10)) 45 >>>>>> reduce(operator.sub, [100, 5, 7]) 88 >>>>>>
zip()メソッドは、2つ以上のリスト/メタグループをクロス集計できます.
Code
>>>>>> zip(range(2,10), ('a', 'b', 'c', 'd', 'e')) [(2, 'a'), (3, 'b'), (4, 'c'), (5, 'd'), (6, 'e')] >>>>>>
List,Tuple
リスト(List):類似.NET ArrayList/List.タプル(Tuple):リストの読み取り専用版.1.変換リスト()/tuple()関数を使用して、リストとメタグループの間で変換できます.
Code
>>>>>> a = ['a', 'b', 'c'] >>>>>> a ['a', 'b', 'c'] >>>>>> b = tuple(a) >>>>>> b ('a', 'b', 'c')('a', 'b', 'c') >>>>>> c = list(b) >>>>>> c ['a', 'b', 'c'] >>>>>>
この2つの関数は文字列パラメータを受け入れるときに面白いです.
Code
>>>>>> list("xwy2.com") ['x', 'w', 'y', '2', '.', 'c', 'o', 'm'] >>>>>> tuple("xwy2.com")
2.演算子アクションリストは、演算子アクションをサポートします.
Code
>>>>>> [1, 2] * 2 [1, 2, 1, 2] >>>>>> [1, 2] + [3, 4] [1, 2, 3, 4] >>>>>>
3.in/not inは、in/not inを使用して要素が含まれているかどうかを判断できます.
Code
>>>>>> a = [1, 2, 3] >>>>>> 1 in a True >>>>>> 4 in a False >>>>>> b = (1, 2, 3) >>>>>> 2 in b True >>>>>>
4.range()range()関数を使用して整数リストを取得したり、演算したり、フィルタ条件を追加したりすることもできます.
Code
>>>>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>>>>> range(2, 10, 2) [2, 4, 6, 8] >>>>>> range(2, 7) [2, 3, 4, 5, 6] >>>>>> [x*2 for x in range(10)] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>>>>> [x for x in range(10) if x%2>0] [1, 3, 5, 7, 9] >>>>>> [x + 1 for x in range(10) if x%2==0] [1, 3, 5, 7, 9] >>>>>>
5.Slicesは文字列と同様に、シーケンス番号またはスライスでアクセスできます.
Code
>>>>>> b = (1,2,3) >>>>>> b[-1] 3 >>>>>> b[1:-1] (2,)(2,) >>>>>> b=(1,2,3) >>>>>> b[1] 2 >>>>>> b[1:] (2, 3)(2, 3) >>>>>> b[-1] 3 >>>>>> b=[1,2,3] >>>>>> b[1] = 100 >>>>>> b [1, 100, 3] >>>>>>
6.関連方法の基本方法:
Code
>>>>>> a = ['a','b','c'] >>>>>> a.index('b') 1 >>>>>> a += ['d'] >>>>>> a ['a', 'b', 'c', 'd'] >>>>>> a += ['b'] >>>>>> a ['a', 'b', 'c', 'd', 'b'] >>>>>> a.count('b') 2 >>>>>> a.insert(1, 's') >>>>>> a ['a', 's', 'b', 'c', 'd', 'b'] >>>>>> a.remove('s') >>>>>> a ['a', 'b', 'c', 'd', 'b'] >>>>>> a.pop(2) 'c' >>>>>> a ['a', 'b', 'd', 'b'] >>>>>> a.reverse() >>>>>> a ['b', 'd', 'b', 'a'] >>>>>> a.sort() >>>>>> a ['a', 'b', 'b', 'd'] >>>>>> a.extend(['e','f']) >>>>>> a ['a', 'b', 'b', 'd', 'e', 'f'] >>>>>> a.append('m', 'n') Traceback (most recent call last): File "
フィルタ()を使用してフィルタリングすることもできます.
Code
>>>>>> a = range(10) >>>>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>>>>> def divfilter(i): return i%2 == 0 >>>>>> filter(divfilter, a) [0, 2, 4, 6, 8] >>>>>>
上のコードは、次のように簡単に書くこともできます.
Code
>>>>>> filter(lambda i: i%2==0, range(10)) [0, 2, 4, 6, 8] >>>>>>
functionパラメータ(最初のパラメータ)がNoneの場合、空の値をフィルタリングするために使用できます.
Code
>>>>>> b = ['a', '', [], [1,2]] >>>>>> filter(None,b) ['a', [1, 2]] >>>>>>
map()類似.NETのArray.Foreach()
Code
>>>>>> map(lambda i:i*2, range(10)) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>>>>>
また、reduce()を使用して要素を統計することもできます.
Code
>>>>>> import operator >>>>>> reduce(operator.add, range(10)) 45 >>>>>> reduce(operator.sub, [100, 5, 7]) 88 >>>>>>
zip()メソッドは、2つ以上のリスト/メタグループをクロス集計できます.
Code
>>>>>> zip(range(2,10), ('a', 'b', 'c', 'd', 'e')) [(2, 'a'), (3, 'b'), (4, 'c'), (5, 'd'), (6, 'e')] >>>>>>