スライスは、文字や配列の一部を取り出します。
変数[添字] のように使います。具体的には、
この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]
いくつか、メソッドが出ました。他にもいろいろありますので、次ページでためしてみましょう。