⑪Pythonリスト

スポンサーリンク

本当にわからないとこがあった場合一人では解決できません。
『teratail』とはエンジニア特化型のQ&Aサイトです。 すべてのエンジニアさんが抱えている悩みを共有して 解決するための質問サイトです
無料なのでまずは登録して使ってみてください。メールアドレスだけで登録可能です ----------------------------------------------------------------------------------------

Pythonリスト



Pythonの最も基本的なデータ構造はシーケンスです。シーケンスの各要素には番号(位置またはインデックス)が割り当てられます。最初の索引はゼロ、2番目の索引は1などです。Pythonには6つの組み込み型のシーケンスがありますが、最も一般的なものはリストとタプルです。このチュートリアルではこれを見ていきます。すべてのシーケンスタイプでできることはいくつかあります。これらの操作には、索引付け、スライス、追加、乗算、およびメンバーシップのチェックが含まれます。さらに、Pythonには、シーケンスの長さを見つけ出し、その最大要素と最小要素を見つけるための組み込み関数があります。


Pythonリスト

このリストはPythonで利用可能な最も汎用性の高いデータ型であり、角括弧で囲まれた値(項目)のリストとして書くことができます。リストに関する重要なことは、リスト内のアイテムが同じタイプである必要はないということです。

リストを作成するのは、大括弧の間にカンマ区切りの異なる値を置くのと同じくらい簡単です。たとえば –

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"]

文字列インデックスと同様に、リストインデックスは0から始まり、リストはスライスされ、連結されます。

リストの値へのアクセス

リスト内の値にアクセスするには、角かっこを使用してスライスし、そのインデックスで使用可能な値を取得します。たとえば –

#!/usr/bin/python

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];

print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]

上記のコードを実行すると、次の結果が生成されます。

list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]



リストの更新

代入演算子の左側にスライスを指定することで、リストの単一または複数の要素を更新できます。また、append()メソッドを使用してリスト内の要素に追加することもできます。たとえば –

#!/usr/bin/python

list = ['physics', 'chemistry', 1997, 2000];

print "Value available at index 2 : "
print list[2]
list[2] = 2001;
print "New value available at index 2 : "
print list[2]

注意: append()メソッドについては、以降のセクションで説明します。

上記のコードを実行すると、次の結果が生成されます。

Value available at index 2 :
1997
New value available at index 2 :
2001


リスト要素を削除する

リスト要素を削除するには、削除する要素を正確に把握している場合はdelステートメントを使用するか、わからない場合はremove()メソッドを使用します。たとえば –

#!/usr/bin/python

list1 = ['physics', 'chemistry', 1997, 2000];

print list1
del list1[2];
print "After deleting value at index 2 : "
print list1

上記のコードが実行されると、次の結果が生成されます。

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

注意: remove()メソッドについては、以降のセクションで説明します。




基本的なリスト操作

リストは文字列によく似た+と*の演算子に応答します。結果は新しいリストであり、文字列ではないことを除いて、ここでも連結と繰り返しを意味します。

実際、リストは、前の章の文字列で使用したすべての一般的なシーケンス操作に応答します。

Python表現 結果 説明
len([1,2,3]) 3 長さ
[1,2,3] + [4,5,6] [1、2、3、4、5、6] 連結
[‘Hi’] * 4 [‘Hi!’、 ‘Hi!’、 ‘Hi!’、 ‘Hi!’] 繰り返し
3 in [1, 2, 3] メンバーシップ
[1、2、3]のxに対して:print x、 1 2 3 反復

インデックス、スライス、および行列

リストはシーケンスなので、インデックス作成とスライスはリストの場合と同じように文字列の場合と同じように動作します。

次の入力を仮定すると、

L = ['spam', 'Spam', 'SPAM!']

 

Python表現 結果 説明
L [2] ”SPAM!’ オフセットはゼロから始まります
L [-2] ‘Spam’ 負の数:右から数えます
L [1:] [‘Spam’, ‘SPAM!’] セクションをフェッチするスライシング

組み込みリストの関数とメソッド:

Pythonには以下のリスト関数が含まれています –

SN 説明付きの関数
1 cmp(list1、list2)

両方のリストの要素を比較します。

#!/usr/bin/python

list1, list2 = [123, 'xyz'], [456, 'abc']

print cmp(list1, list2)
print cmp(list2, list1)
list3 = list2 + [786];
print cmp(list2, list3)

結果

-1
1
-1
2 len(list)

リストの長さの合計を指定します。

#!/usr/bin/python

list1, list2 = [123, 'xyz', 'zara'], [456, 'abc']

print "First list length : ", len(list1)
print "Second list length : ", len(list2)

結果

First list length :  3
Second list length :  2
3 max(list)

最大値を持つリストから項目を返します。

#!/usr/bin/python

list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]

print "Max value element : ", max(list1)
print "Max value element : ", max(list2)

結果

Max value element :  zara
Max value element :  700
4 min(list)

min値でリストから項目を返します。

#!/usr/bin/python

list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]

print "min value element : ", min(list1)
print "min value element : ", min(list2)

結果

min value element :  123
min value element :  200
5 list(seq)

タプルをリストに変換します。

#!/usr/bin/python

aTuple = (123, 'xyz', 'zara', 'abc');
aList = list(aTuple)

print "List elements : ", aList

結果

List elements :  [123, 'xyz', 'zara', 'abc']

Pythonには以下のリストメソッドが含まれています

SN 説明付きのメソッド
1 list.append(obj)

オブジェクトobjをリストに追加します。

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc'];
aList.append( 2009 );
print "Updated List : ", aList

結果

Updated List :  [123, 'xyz', 'zara', 'abc', 2009]
2 list.count(obj)

objがリスト内で何回起こったかの回数を返します。

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 123];

print "Count for 123 : ", aList.count(123)
print "Count for zara : ", aList.count('zara')

結果

Count for 123 :  2
Count for zara :  1
3 list.extend(seq)

リストにseqの内容を追加する

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 123];
bList = [2009, 'manni'];
aList.extend(bList)

print "Extended List : ", aList 

結果

Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
4 list.index(obj)

objが現れるリスト内の最も小さいインデックスを返します。

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc'];

print "Index for xyz : ", aList.index( 'xyz' ) 
print "Index for zara : ", aList.index( 'zara' )

結果

Index for xyz :  1
Index for zara :  2

 

5 list.insert(index、obj)

オブジェクトobjをオフセットインデックスでリストに挿入します。

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc']

aList.insert( 3, 2009)

print "Final List : ", aList

結果

Final List : [123, 'xyz', 'zara', 2009, 'abc']
6 list.pop(obj = list [-1])

最後のオブジェクトまたはobjをリストから削除して返します。

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc'];

print "A List : ", aList.pop()
print "B List : ", aList.pop(2)

結果

A List :  abc
B List :  zara

 

7 list.remove(obj)

リストからオブジェクトを削除します。

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 'xyz'];

aList.remove('xyz');
print "List : ", aList
aList.remove('abc');
print "List : ", aList

結果

List :  [123, 'zara', 'abc', 'xyz']
List :  [123, 'zara', 'xyz']
8 list.reverse()

リストのオブジェクトをその場で元に戻す

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 'xyz'];

aList.reverse();
print "List : ", aList

結果

List :  ['xyz', 'abc', 'zara', 'xyz', 123]
9 list.sort([func])

リストのオブジェクトをソートし、指定されていればcompare funcを使う

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 'xyz'];

aList.sort();
print "List : ", aList

結果

List :  [123, 'abc', 'xyz', 'xyz', 'zara']



前のページ⑩Pythonの文字列

次のページ⑫

スポンサーリンク

プログラミングは独学からは挫折の可能性が高いです。まずは無料体験ができる
コードキャンプが本当におすすめ。無料体験でわからないところを聞きましょう。
転職補助つき。カリキュラム終了後に転職紹介をしてくれます。