目次
I.はじめに
Python は、1991 年に Guido van Rossum によって作成された高級プログラミング言語です。簡潔で読みやすい構文、強力な機能、幅広いアプリケーションで知られています。Python には、Web 開発、データ分析、人工知能、科学技術コンピューティング、自動化スクリプトなど、さまざまな種類のアプリケーションの開発に使用できる標準ライブラリとサードパーティ ライブラリが豊富にあります。
Python 自体は優れた汎用プログラミング言語であり、いくつかの人気のあるライブラリ (numpy、scipy、matplotlib) の助けを借りて、科学技術コンピューティングのための強力な環境となっています。このシリーズでは、Python プログラミング言語と、主に次のような科学技術計算に Python を使用する方法を紹介します。
- Python: プリミティブ データ型、コンテナ (リスト、タプル、セット、辞書)、関数、クラス
- Numpy: 配列、配列のインデックス付け、データ型、配列の演算、ブロードキャスト
- Matplotlib: プロット、サブプロット、画像
- IPython: ノートブックの作成、一般的なワークフロー
2. 実験環境
Python 3.7
次のコマンドを実行して Python のバージョンを確認します。
python --version
3. Python コンテナ
0. コンテナの概要
Python のコンテナは、データを保存および整理するために使用されるオブジェクトです。一般的なコンテナには、リスト、タプル、セット、辞書が含まれます。
- リストは、さまざまなタイプの要素を含めることができる順序付けされた変更可能なコンテナーであり、角括弧 ([]) を使用して作成されます。
my_list = [1, 2, 3, 'a', 'b', 'c']
- タプルは、順序付けされた不変のコンテナであり、さまざまなタイプの要素を含めることもでき、かっこ (()) を使用して作成されます。
my_tuple = (1, 2, 3, 'a', 'b', 'c')
- セットは、一意の要素を格納するために使用される順序付けされていない重複のないコンテナであり、中括弧 ({}) または set() 関数を使用して作成されます。
my_set = {1, 2, 3, 'a', 'b', 'c'}
- ディクショナリは、一意のキーを持つ値を保存するために使用されるキーと値のペアの順序付けされていないコンテナであり、中括弧 ({}) または dict() 関数を使用して作成されます。
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
これらのコンテナは、データの保存、アクセス、処理のためのさまざまな方法と操作を提供します。特定のニーズに基づいて、適切なコンテナのタイプを選択できます。
1. リスト
2.タプル
タプルは Python のシーケンス型であり、リストに似ており、複数の要素を格納できます。リストとは異なり、タプルは不変であり、一度作成すると変更することはできません。
1. 初期化
a. 括弧 () を使用します。
my_tuple = ()
この方法で作成されたタプルは空であり、要素は含まれていません。
かっこ () とカンマ区切りの要素を使用してタプルを作成します。
my_tuple = (1, 2, 3)
b. 括弧を省略します。
my_tuple = 1, 2, 3
カンマで区切られた要素はタプルに結合されます。括弧は省略されていますが、タプルであることに変わりはありません。
c.機能 tuple()
_
tuple()
関数は、他の反復可能なオブジェクト (リスト、文字列、辞書など) をタプルに変換できます。
- リストをタプルに変換します。
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple) # 输出:(1, 2, 3, 4, 5)
- 文字列をタプルに変換します。
my_string = "Hello, World!"
my_tuple = tuple(my_string)
print(my_tuple) # 输出:('H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!')
- 辞書をタプルに変換します。
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_tuple = tuple(my_dict)
print(my_tuple) # 输出:('a', 'b', 'c')
2. タプル要素にアクセスする
a. インデックス
# 使用索引访问元组中的特定元素
print(my_tuple[0]) # 输出:a
print(my_tuple[-1]) # 输出:d
b. スライス
# 使用切片操作获取元组的子序列
print(my_tuple[1:3]) # 输出:('b', 'c')
print(my_tuple[1:]) # 输出:('b', 'c', 'd')
print(my_tuple[:]) # 输出:('a', 'b', 'c', 'd')
print(my_tuple[1:-1]) # 输出:('b',)
print(my_tuple[:-1]) # 输出:('a', 'b', 'c')
3. タプルの特徴
a. 不変
タプルは不変であり、一度作成されると、タプルの要素を変更することはできません。タプル内の要素は追加、削除、または変更できません。
my_tuple = (1, 2, 3)
my_tuple[0] = 4 # 会引发一个类型错误(TypeError: 'tuple' object does not support item assignment)
b. さまざまな種類が含まれています
タプルには、整数、文字列、浮動小数点数など、さまざまなタイプの要素を含めることができます。
my_tuple = (1, "hello", 3.14)
c. 入れ子にすることができる
タプルは入れ子にすることができます。つまり、タプルには他のタプルを要素として含めることができます。
# 访问元组中的元素
element1 = nested_tuple[0]
print(element1) # 输出: (1, 'hello')
print(nested_tuple[2][0]) # 输出: world
4. タプルに対する一般的な操作
a. タプルの長さ
b. 要素数
c. タプルの連結
d. タプルの重複
e. 要素がタプルに存在するかどうかを確認します
my_tuple = (1, 2, 3)
# 获取元组的长度
print(len(my_tuple)) # 输出:3
# 元素计数
print(my_tuple.count(2)) # 输出: 1(元素2在元组中出现的次数)
# 元组拼接
new_tuple = my_tuple + (4, 5)
print(new_tuple) # 输出:(1, 2, 3, 4, 5)
# 元组重复
repeated_tuple = my_tuple * 2
print(repeated_tuple) # 输出:(1, 2, 3, 1, 2, 3)
# 检查元素是否存在于元组中
print(2 in my_tuple) # 输出:True
print(4 not in my_tuple) # 输出:True
5.開梱
タプルアンパッキング(タプル分割、タプルアンパッキング)とは、タプルの要素を複数の変数に代入する方法です。タプルの構造化を通じて、タプル内の値を対応する変数に簡単に割り当てることができます。
my_tuple = (1, 2, 3)
a, b, c = my_tuple
print(a) # 输出:1
print(b) # 输出:2
print(c) # 输出:3
この例では、タプルにはmy_tuple
3 つの要素 1、2、および 3 が含まれています。a
タプルの構造化を通じて、これら 3 つの値を変数、b
、に代入しますc
。結果は、変数のa
値は 1、変数b
の値は 2、変数c
の値は 3 になります。
変数の数はタプル内の要素の数と同じでなければならないことに注意してください。そうでない場合は例外がスローされます。
- 変数の数はタプル内の要素の数よりも少ないです。
my_tuple = (1, 2, 3)
a, b = my_tuple
ValueError: too many values to unpack (expected 2)
- タプルには要素よりも多くの変数があります。
my_tuple = (1, 2, 3)
a, b, c, d = my_tuple
ValueError: not enough values to unpack (expected 4, got 3)
6.トラバース
a. for ループ
my_tuple = (1, 2, 3, 4, 5)
for element in my_tuple:
print(element)
b. enumerate()
機能
my_tuple = (1, 2, 3, 4, 5)
for index, element in enumerate(my_tuple):
print(f"Index: {index}, Element: {element}")