私のディレクトリ
1. Pythonとは何ですか?
Python では、リストとタプルはどちらも複数のデータ項目を格納するために使用されるデータ構造ですが、いくつかの微妙な違いがあります。
列表
これは可変であり、リスト内の要素をいつでも追加、削除、変更できることを意味しますが、タプルは不変であり、一度作成されると変更できないことを意味します。元组
通常は、座標や日付などの不変のデータ項目を格納するために使用されます。列表
表現する場合は角括弧[]、元组
表現する場合は丸括弧()を使用します。
2. リストアプリケーション
- リストは、学生の名前、年齢、性別、その他の情報のグループなど、可変長のデータ コレクションを保存するためによく使用されます。
- リストは動的に追加、削除、変更できるため、データ構築やアルゴリズム操作などに広く利用されています。
- リストには、2 次元配列やツリーなどのデータ構造を構築するために使用できる、入れ子になったリストなど、他のタイプのデータ構造も含めることができます。
たとえば、リストを使用して学生情報を保存する例を次に示します。
students = [
{
'name': 'Tom', 'age': 18, 'gender': 'male'},
{
'name': 'Lucy', 'age': 19, 'gender': 'female'},
{
'name': 'Bob', 'age': 20, 'gender': 'male'}
]
for student in students:
print('{} is {} years old, {}.'.format(student['name'], student['age'], student['gender']))
3. タプルの適用:
- タプルは不変であるため、通常、座標や日付のセットなどの不変のデータ コレクションを格納するために使用されます。
- タプルはアンパックすることで代入でき、関数の戻り値の複数の代入に使用できます。
- タプルは不変として扱うことができ、キャッシュして最適化できるため、パフォーマンスが重視される状況ではリストよりもタプルの方が効率的です。
たとえば、タプルを使用して座標を保存する例を次に示します。
def distance(p1, p2):
""" 计算两个点之间的距离 """
x1, y1 = p1
x2, y2 = p2
dx = x2 - x1
dy = y2 - y1
return (dx**2 + dy**2) ** 0.5
p1 = (0, 0)
p2 = (3, 4)
print('Distance between', p1, 'and', p2, 'is', distance(p1, p2))
4. リストとタプルをさらに深く理解する
4.1. リストの例:
fruits = ['apple', 'banana', 'orange'] # 创建一个列表
print(fruits) # 输出 ['apple', 'banana', 'orange']
fruits.append('grape') # 在列表末尾添加 'grape'
print(fruits) # 输出 ['apple', 'banana', 'orange', 'grape']
fruits[1] = 'pear' # 修改第二个元素为 'pear'
print(fruits) # 输出 ['apple', 'pear', 'orange', 'grape']
fruits.remove('orange') # 删除 'orange'
print(fruits) # 输出 ['apple', 'pear', 'grape']
4.2. タプルの例:
coordinates = (3, 4) # 创建一个元组
print(coordinates) # 输出 (3, 4)
# 下面的语句会引发 TypeError
# coordinates[0] = 5 # 尝试修改元组中的第一个元素
# 元组也可以使用拆包特性进行赋值,例如:
x, y = coordinates
print('x:', x, 'y:', y) # 输出 x: 3 y: 4
要約する
タプル自体は不変ですが、タプルにリストなどの変更可能なオブジェクトが含まれている場合、リスト内の要素は変更できることに注意してください。