hirhirの日記

Pythonとデータ分析と人口知能

Python3 入門:ネイティブデータ型 リスト その1 作成 スライス 追加

Python3 入門 ネイティブデータ型 リスト

まぁ一番良く使うものですかね

 

さて

Dive into Pythonには下記のように書いてありますね。

 

リストを作るのは簡単だ: カンマで区切って並べた値を、角括弧で包めばいい。

ということで今回は

IPython notebook を使用してみる

理由はブラウザで実行できるのでコピペが非常に楽だという理由のみです。

ターミナルから下記コマンド

ipython notebook

これでブラウザが開くはず

 

さっそく以下の配列を実行してみた

In [1]:
 
a = ['a', 'b', 'c', 'dd', 'eee']
a
 
 
Out[1]:
['a', 'b', 'c', 'dd', 'eee']

 

うん、そのままですね!

ちなみに実行は▶マークです。まじ簡単

次々いこう

In [2]:
 
a[0]
 
 
Out[2]:
'a'
In [3]:
 
a[-1]
 
 
Out[3]:
'eee'
In [4]:
 
a[-4]
 
 
Out[4]:
'b'
In [5]:
 
len(a)
 
 
Out[5]:
5

indexは0スタートエンドはー1

長さはlen()ってところ んー普通!次はスライス(範囲)

スライス
In [6]:
 
a[1:3]
 
 
Out[6]:
['b', 'c']
In [7]:
 
a[2:-2]
 
 
Out[7]:
['c']
In [8]:
 
a[0:-1]
 
 
Out[8]:
['a', 'b', 'c', 'dd']
In [9]:
 
a[0:4]
 
 
Out[9]:
['a', 'b', 'c', 'dd']
In [10]:
 
a[:4]
 
 
Out[10]:
['a', 'b', 'c', 'dd']
In [11]:
 
a[4:]
 
 
Out[11]:
['eee']
In [12]:
 
a[:]
 
 
Out[12]:
['a', 'b', 'c', 'dd', 'eee']

以上スライス

追加

 Dive into Pythonには下記

リストを作成する方法は4つ

In [1]:
 
a = ['a']
a
 
 
Out[1]:
['a']
In [2]:
 
a = a + [11.1 , 0]
a
 
 
Out[2]:
['a', 11.1, 0]
In [3]:
 
a.append(True)
a
 
 
Out[3]:
['a', 11.1, 0, True]
In [4]:
 
a.extend(['hoge' , 'foo'])
a
 
 
Out[4]:
['a', 11.1, 0, True, 'hoge', 'foo']
In [5]:
 
a.insert(0 , 'bar')
a
 
 
Out[5]:
['bar', 'a', 11.1, 0, True, 'hoge', 'foo']

+演算子はリストを結合して新たなリストを作る。リストは要素をいくつでも含むことができ、

(利用可能なメモリ量以外に)サイズの制限はない。しかしながら、メモリの使用量が問題となるような場合には、

このリストの結合によって新たなリストがメモリ上に作成されることに注意すること。

リストは任意のデータ型の要素を含むことができ、1つのリストの要素がすべて同じ型である必要はない。

実際に、このリストには文字列と浮動小数点数と整数が入っている。

append()メソッドはリストの末尾に要素を1つ追加する

リストはクラスとして実装されている。リストの「作成」は実際にはクラスのインスタンス化だ。

ゆえに、リストは自身を操作するためのメソッドを持っている。

extend()メソッドは1つの引数としてリストをとり、引数として与えられたリストの各要素を元のリストへ追加する。

insert()メソッドは1つの要素をリストに挿入する。1つ目の引数は、挿入によって位置がずらされる最初の要素の

インデックスだ。リストの各要素の値は、リストの中で唯一の値である必要はない。

append とextendの違いがわかりにくいな。。。

In [11]:
 
b = ['b']
b
 
 
Out[11]:
['b']
In [12]:
 
b.append('hoge')
b
 
 
Out[12]:
['b', 'hoge']
In [13]:
 
b.append('foo' , 'bar')
b
 
 
 
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-13-0fb4cced5fa0> in <module>()
----> 1 b.append('foo' , 'bar')
      2 b

TypeError: append() takes exactly one argument (2 given)

In [14]:
 
b
 
 
Out[14]:
['b', 'hoge']

って追加するんかいって突っ込んだ。。。

Error だしても追加しちゃうのね。。。

要は1つの要素の追加ならエラー出しながらでも可能ということ

複数なら素直にextendせいやって事でしょう

In [15]:
 
c = ['c']
c
 
 
Out[15]:
['c']
In [16]:
 
c.extend(['hoge', 'foo','bar'])
c
 
 
Out[16]:
['c', 'hoge', 'foo', 'bar']
In [17]:
 
c.extend(['red',['blue','yellow']])
c
 
 
Out[17]:
['c', 'hoge', 'foo', 'bar', 'red', ['blue', 'yellow']]
In [18]:
 
c.append([1,2,3])
c
 
 
Out[18]:
['c', 'hoge', 'foo', 'bar', 'red', ['blue', 'yellow'], [1, 2, 3]]

まぁこういう事 

続きは その2へ