三丁目の電脳

Python タプルとは

JUGEMテーマ:python

多数の値をまとめて使うことが出来るものは、リストだけではなくいくつか存在します。中でも、非常にユニークな働きをするのがタプル(tuple)でしょう。

Pythonでは、いくつかの値をカンマでつなげて記述すると、タプルと認識されます。より明示的に表すならタプルにまとめる値の前後を( )でくくって書きます。こう書くと、どの値をまとめてタプルを作るかが一目瞭然です。

構文

値1,値2,値3…
(値1,値2,値3…)



タプルの値もリスト同様にインデクス番号が割り振られています。タプル内の値は、リストと同じく添え字([ ])を使いインデクス番号指定して取り出すことが出来ます。


ここまで見てわかるように基本的な扱いはリストと似ています。リストもタプルも、あらかじめ値を用意して作成でき、インデクスを使って値を取り出せます。ただし両者には決定的な違いがあります。それは「タプルは値の変更が出来ない」という点です。
Pythonのデータを扱うオブジェクトには「ミュータブル」と「イミュータブル」という特徴があります。

ミュータブル:値が変更可能なもの
イミュータブル:値が変更不可能なもの

タプルはイミュータブルです。値の変更が出来ないため「必要に応じてデータを保存したり書き換えた入りして処理する」という使い方には向いていません。「あらかじめ用意しておいたデータを参照して使う」ような必要な値を取り出すだけの使い方になるでしょう。

良かったらポチして下さい。


人気ブログランキング
| 2018.04.20 Friday | 13:14 | Python | comments(0) | trackbacks(0) |
Python リスト(list) リスト操作のメソッド その2

JUGEMテーマ:python

●値の位置を調べる
特定の値がどの位置(インデクス)にあるか調べるには以下の様にします。ただし調べる値が複数あった場合には最初のインデクスを返します。また値がなかった場合にはエラーになります。

構文

リスト.index(値)



●最後の値を削除する。
appendではリストの最後に値を追加しましたが「最後の値を削除する」メソッドが「pop」です。

構文

リスト.pop()


popは削除した時に削除した値を返しますのでプログラム中で再利用出来るように出力していると考えてください。

●リストをクリアする
1つ1つの値を削除するのではなく、リストにある値をすべてまとめて消去したい場合にもちいられるのが「clear」です。

構文

リスト.clear()


delとは違いオブジェクトは存在し中身が空になります。

●並び順を反転する
リストはインデクス番号により順番に並んでいます。これを逆順にするのが「reverse]です。

構文

リスト.reverse()



●並べ替える
リストに保管されている要素を並び替えるメソッドです。ただし数値、文字列が混在しているリストに関しては出来ません。数値のみ文字列のみのリストに関して適用出来ます。

構文

リスト.sort()
リスト.sort(reverse=真偽値)


リスト.sort()の場合は昇順で並べ替えられます。リスト.sort(reverse=True)の場合は逆順に並べ替えられます。リスト.sort(reverse=False)の場合はリスト.sort()と同意です。

良かったらポチして下さい。


人気ブログランキング
| 2018.04.20 Friday | 10:55 | Python | comments(0) | trackbacks(0) |
Python リスト(list) リスト操作のメソッド その1

JUGEMテーマ:python

リストは、オブジェクトと呼ばれるものの一つです。オブジェクトは「さまざまな値や処理をひとまとめにして扱えるようにした特別な値」の総称です。
オブジェクトには「メソッド」と呼ばれる処理が組み込まれています。このメソッドを呼び出すことで、オブジェクトを操作できます。メソッドは関数と同じく「特定の処理のための命令」です。
リストもリスト地震に関連する命令(メソッド)を利用できます。

リストの最後尾に値を追加する。

構文

リスト.append(値)



リストの指定位置に値を追加する。

構文

リスト.insert(インデクス,値)


「インデクス1の場所に99という値を挿入する」という命令です。インデクス1というのは45の値の場所になります。ここに99が挿入されることになるので45の場所(インデクス=1)に99が挿入されるため45はインデクス2に56はインデクス3とずれていきます。

リストから値を削除する。

構文

リスト.remove(値)


削除する値を指定して削除します。もし同じ値が複数あった場合には一番最初のものだけを削除します。

指定したオブジェクトを削除する。

構文

del オブジェクト

これで指定のオブジェクトを削除できます。例えばdataというリストがあり、そのインデクス番号1の値を削除したければ、このように実行すればいいわけです。


delはメソッドではなくオブジェクトを伴う文です。関数やメソッドとは別の特別な命令と考えてください。delはオブジェクトや変数を削除するのにも使えます。

良かったらポチして下さい。


人気ブログランキング
| 2018.04.20 Friday | 10:15 | Python | comments(0) | trackbacks(0) |
Python リスト(list) その他のシーケンス演算

JUGEMテーマ:python

+や*による演算の他にもリストには様々な演算が用意されています。これらはシーケンス演算と呼ばれます。シーケンスというのは、保管する値に番号(インデクス)をつけて整理するコンテナの総称で、リストもシーケンスの仲間です。このシーケンスに共通する演算がシーケンス演算です。+や*の演算もシーケンス演算の一種です。

●値が含まれているか調べる
リストの中に、指定した値が含まれているかどうかを調べます。

構文

値 in リスト
値 not in リスト

inはリストの中に値が含まれていればTrue、いなければFalseを返します。


not inは反対に含まれていなければTrue、含まれていればFalseを返します。


●指定範囲の要素を取得
リスト内の特定の要素を取り出すには[ ]を使い、取り出したい要素のインデクス番号を指定しました。このやり方では、取り出せる値は1だけです。例えば「2番目から5番目の値をまとめて取り出した」というようなときはどうすればいいでしょうか

構文

リスト[開始位置:終了位置]


このやり方では取り出すの最初の一と最後の位置を指定しますが、これを「取り出す要素のインデクス番号」と考えるとわかりにくいです。それよりも「要素と要素の間」を番号付けしたものと考えるとわかりやすくなります。上記の例からだと一番最初の10の手前が「0」番の位置になり、10と20の間が「1」、20と"TEST"の間が「2」……というように考えます。するとa[1:4]というのは10と20の間が開始位置、"test"と47の間が終了位置になります。

●要素数・最小値・最大値
「リストにいくつの要素が保管されているか」「リストに保管されている中でもっとも大きな値は何か」「リストに保管されている中でもっとも小さな値は何か」といった事柄については組み込み関数で簡単に得ることが出来ます。

要素数を得る

構文

len(リスト)



最小値を得る

構文

min(リスト)

※リスト内に文字列が含まれているエラーになります。

最大値を得る

構文

max(リスト)

※リスト内に文字列が含まれているエラーになります。

良かったらポチして下さい。


人気ブログランキング
| 2018.04.19 Thursday | 13:15 | Python | comments(0) | trackbacks(0) |
Python リスト(list) リストの演算

JUGEMテーマ:python

●リストの加算
リストどうしは、「+」演算子を使って1つのリストにまとめられます。

構文

リスト + リスト



●リストの乗算
リストどうしは、「*」演算子を使ってリストに数値(整数)を掛けると、リストをその数だけ繰り返しつなげることが出来ます

構文

リスト * 数値(整数)

良かったらポチして下さい。


人気ブログランキング
| 2018.04.19 Thursday | 11:30 | Python | comments(0) | trackbacks(0) |
Python リスト(list) リストの値

JUGEMテーマ:python

リストの中にはたくさんの値が保管されていますから、利用の際には「どの値を利用するか」を指定できなければいけません。そのために利用されるのがインデクスです。
リストに用意されている値の保管場所には、それぞれインデクスが割り振られています。このインデクスは、各保管場所に割り振られる通し番号です。一番最初はゼロ(0)が割り振られ、その次が1、更にその次が2……というように、ゼロから順番にインデクスが割り振られます。
リストの値の取得

構文

リスト[番号]

リストの値の変更

構文

リスト[番号] = 値

このように、[ ]でインデクス番号を指定することで、その保管場所にある値を取り出したり、指定の保管場所に別の値を代入したりできます。

良かったらポチして下さい。


人気ブログランキング
| 2018.04.19 Thursday | 11:12 | Python | comments(0) | trackbacks(0) |
Python リスト(list) データとリスト

JUGEMテーマ:python

数値やテキストなどの値(基本的なデータ)と変数について説明してきましたが、多量のデータを扱うようになると、これらの単純な値や変数だけでは処理が難しくなります。1つ1つの値をそれぞれの変数に収めて処理するようなやりかたでは対処しきれなくなるからです。
こんなとき「多数の値をまとめて扱えるもの」があれば、ずいぶんとデータ処理もはかどります。Pythonには、こうした役割を果たすためのデータをまとめるデータ形式がいくつか用意されています、これらは「コンテナ」と呼ばれます。
●リストの作成
まず最初に取り上げるのはリスト(list)です。リストは、多数の値を順番に保管するのに用いられます。リストは、以下のように記述します。[ ]記号の中に、保管したい値をカンマ(,)で区切って記述していきます。これでリストの中に値の保管場所が用意され、そこに値が代入されます。

構文

[値1, 値2, 値3 ……]

リストは値が1つだけのリストも作れたり、異なる種類のデータを扱うことも可能です。

list関数でリストを生成することも可能です。

list("abcd")
list((10, 15, 25))

良かったらポチして下さい。


人気ブログランキング
| 2018.04.18 Wednesday | 13:09 | Python | comments(0) | trackbacks(0) |
Python コメント

JUGEMテーマ:python

プログラムを書いてみると、記述した内容の説明などをメモしておきたいことも多いでしょう。こうした時に用いられるのがコメントです。コメントはソースコード内に記述出来る「、コードと認識されないテキストです。
●1行のみのコメント
コメントの冒頭に#記号をつけます。この記号以降、改行するまでのテキストはコメントと見なされます。

良かったらポチして下さい。


人気ブログランキング
| 2018.04.18 Wednesday | 12:22 | Python | comments(0) | trackbacks(0) |
Python 文字列のフォーマット

JUGEMテーマ:python

リテラルと変数をいくつも組み合わさていく場合、ちょっとした書き間違いでエラーになってしまいます。どれが変数でどれが文字列かも一目では判別できません。もう少し、わかりやすく整理された書き方ができれば、こうした問題を回避できます。
このようなときに用いられるのがフォーマット済み文字列リテラルです。これは文字列リテラルの中に、変数を埋め込んで記述したものです。

構文

f"……リテラル……"

リテラルの直前に「f」という記号を付けて記述します。このように値の手前に記述する記号をプレフィックスと呼びます。これでこのリテラルはフォーマット済み文字列リテラルとして処理されるようになります
ここには{}記号の中にPythonの式を記述できます。変数や式などをこの中に用意して、値をそこにはめ込んだテキストを生成します。
samp03.py

01:name = "Taro"
02:age = "35 yeara old"
03:msg = f"Hello I'm {name}, {age}."
04:print(msg)

{}内には変数以外のものが記述出来ます。例えば式を埋め込んだ例を見てみましょう。

price = 12300
f"{price}円の税込み価格は、{price * 1.08}円です"

良かったらポチして下さい。


人気ブログランキング
| 2018.04.18 Wednesday | 11:16 | Python | comments(0) | trackbacks(0) |
Python 三重クォートによるテキストの記述

JUGEMテーマ:python

値(リテラル)を記述するとき一番問題となるのが文字列でしょう。短い単語のようなものなら簡単ですが、複数行に渡るような長いテキストを値として利用したいようなときはどうすればよいのでしょう。Pythonではただクォートで囲むだけでは改行させられません。
エスケープシーケンスに改行を表す記号(¥rや¥nなど)があるので、それらを使って改行させながらリテラルを記述することもできます。実はもっと簡単な方法もあります。それは三重クォートを利用する方法です。

構文

'''…テキストを記述…'''
"""…テキストを記述…"""

このように、テキストの前後に3つのクォート記号を続けて書きます。このようにすると途中でテキストの改行することが出来ます

str1 = """Hello.
Welcome to Python.
Bye!"""
str1

改行したところに、¥nという改行を示すエスケープシーケンスが挿入されていることがわかるでしょう。つまり、三重クォートによるリテラルは、途中にエスケープシーケンスを使って改行を記述したリテラルとまったく同じものというわけです。

良かったらポチして下さい。


人気ブログランキング
| 2018.04.18 Wednesday | 10:53 | Python | comments(0) | trackbacks(0) |
<< | 2/27PAGES | >>