step 3 スライス

スライス

スライスは、文字や配列の一部を取り出します。

変数[添字] のように使います。具体的には、

この3つの形になります。

[添字1:添字2]だと、添字1から添字2までのを取り出しますが、添字2は含みません。

s="abcdefg"
print s[2:4]

cd

配列は、0から始まります。0がa,1がb,2がc,3がd,4がeです。2から4までですので、cdeとなりそうなものですが、4は含みませんので、cdが出ます。

s="abcdefg"
print s[2:5]

cde

2,3,4、つまりcdeが出ました。

文字も配列も一緒です。

a=(10,30,70,120,200)
print a[1:3]

(30, 70)

1(30),2(70)が出ました。

[添字:] だと、添字以降の全てになります。

s="abcdefg"
print s[2:]
a=(10,30,70,120,200)
print a[1:]

cdefg
(30, 70, 120, 200)

2(c)以降の、cdefg,1(30)以降の(30,70,120,200)が出ましたね。

[:添字] だと、もちろん逆で、そこまでの全てです。

s="abcdefg"
print s[:4]
a=(10,30,70,120,200)
print a[:3]

abcd
(10, 30, 70)

4のeより前のabcd,3の120より前の(10,30,70)が出ました。

-(マイナス)を使うと、右から数えます。

s="abcdefg"
print s[-1]
a=(10,30,70,120,200)
print a[-2]

g
120

-1が一番右なので、g,-2は右から2番目なので、120が出ました。

s="abcdefg"
print s[:-1]
a=(10,30,70,120,200)
print a[:-2]

abcdef
(10, 30, 70)

スライスだとこんな感じで出ました。もう1つ例をみてみましょうか。

s="abcdefg"
print s[-4:-1]
a=(10,30,70,120,200)
print a[-3:]

def
(70, 120, 200)

このくらい見たら、もう添字の見方は、分かってくると思います。

変数と計算

項目(データ、リストの中身)に変数をつかってみます。

x="orange"
a=[10,x,200]
print a

[10, 'orange', 200]

リスト内で、計算もできます。

a=[10,50+7,200]
print a

[10, 57, 200]

代入

スライスを使って、中身を入れ替えてみます。

( )は、入れ替えられないので、[ ]を使います。

a=[10,30,70,120,200]
print a
a[1:3]=[300,700]
print a

[10, 30, 70, 120, 200]
[10, 300, 700, 120, 200]

[1:3]の[30,70]を[300,700]にしました。

中身を減らしてみましょう。

a=[10,30,70,120,200]
print a
a[1:4]=[9]
print a

[10, 30, 70, 120, 200]
[10, 9, 200]

[30,70,120]3つが[9]1つになりました。

消すときは、[]です。

a=[10,30,70,120,200]
print a
a[1:4]=[]
print a

[10, 30, 70, 120, 200]
[10, 200]

メソッドdelを使っても消せます。

del 変数[添字] のように使います。

a=[10,30,70,120,200]
print a
del a[1:4]
print a

[10, 30, 70, 120, 200]
[10, 200]

追加するときは、こんな感じで。

a=[10,30,70,120,200]
print a
a=a+[2,5]
print a

[10, 30, 70, 120, 200]
[10, 30, 70, 120, 200, 2, 5]

1つ項目(データ、リストの中身)を追加するなら、appendというメソッド(命令)があります。

変数.append(最後に追加する項目) のように使います。

a=[10,30,70,120,200]
print a
a.append(2)
print a

[10, 30, 70, 120, 200]
[10, 30, 70, 120, 200, 2]

途中に項目を挿入したいときは、insertを使います。

変数.insert(位置,項目) のように使います。

a=[10,30,70,120,200]
print a
a.insert(1,"apple")
print a

[10, 30, 70, 120, 200]
[10, 'apple', 30, 70, 120, 200]

いくつか、メソッドが出ました。他にもいろいろありますので、次ページでためしてみましょう。



管理人:人泣礼(hitonaki@starword.org)