Python 認定エントリーレベル プログラマー (PCEP) を目指すには、リストやタプルなど、Python の基本的なデータ構造を完全に理解する必要があります。
リストとタプルはどちらも Python でオブジェクトを保存できますが、これら 2 つのデータ構造には使用法と構文に大きな違いがあります。 PCEP 認定試験に合格するために、これらのデータ構造を習得するための重要なヒントをいくつか紹介します。
1.リストとタプルの違いを理解する
Python のリストは変更可能です。つまり、作成後に変更できます。一方、タプルは不変です。つまり、一度作成すると変更することはできません。これは、タプルのメモリ要件が低く、特定の状況ではリストより高速になる可能性がありますが、柔軟性が低いことを意味します。
リストの例:
# creating a list of numbers numbers = [1, 2, 3, 4, 5] # modifying the list by changing the fourth element numbers[3] = 10 print(numbers) # output: [1, 2, 3, 10, 5]
タプルの例:
# creating a tuple of colors colors = ("red", "green", "blue") # trying to modify the tuple by changing the second element colors[1] = "yellow" # this will result in an error as tuples are immutable
2.リストとタプルの構文を理解する
リストは角括弧 [ ] で示され、タプルは括弧 ( ) で囲まれます。リストまたはタプルの作成は、適切な構文を使用して変数に値を宣言するのと同じくらい簡単です。タプルは初期化後に変更できないため、正しい構文を使用することが重要であることに注意してください。
リストの例:
# creating a list of fruits fruits = ["apple", "banana", "orange"]
タプルの例:
# creating a tuple of colors colors = ("red", "green", "blue")
3.アイテムの追加と削除の方法を知る
リストには、append()、extend()、remove() など、項目を追加および削除するためのさまざまな組み込みメソッドがあります。一方、タプルには組み込みメソッドが少なく、項目を追加または削除するメソッドがありません。したがって、タプルを変更する必要がある場合は、既存のタプルを変更するのではなく、新しいタプルを作成する必要があります。
リストの例:
# adding a new fruit to the end of the list fruits.append("mango") print(fruits) # output: ["apple", "banana", "orange", "mango"] # removing a fruit from the list fruits.remove("banana") print(fruits) # output: ["apple", "orange", "mango"]
タプルの例:
# trying to add a fruit to the end of the tuple fruits.append("mango") # this will result in an error as tuples are immutable # trying to remove a fruit from the tuple fruits.remove("banana") # this will also result in an error
4.パフォーマンスの違いを理解する
タプルは不変であるため、一般にリストよりも高速です。項目の固定コレクションを保存する必要があるシナリオに注意し、パフォーマンスを向上させるためにリストの代わりにタプルを使用することを検討してください。
Python の timeit モジュールを使用して、リストとタプルのパフォーマンスの違いをテストできます。以下は、リストと 10 個の要素を持つタプルの反復処理にかかる時間を比較する例です:
# importing the timeit module import timeit # creating a list and a tuple with 10 elements numbers_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] numbers_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # testing the time it takes to iterate through the list list_time = timeit.timeit('for num in numbers_list: pass', globals=globals(), number=100000) print("Time taken for list: ", list_time) # output: Time taken for list: 0.01176179499915356 seconds # testing the time it takes to iterate through the tuple tuple_time = timeit.timeit('for num in numbers_tuple: pass', globals=globals(), number=100000) print("Time taken for tuple: ", tuple_time) # output: Time taken for tuple: 0.006707087000323646 seconds
ご覧のとおり、タプルの反復処理はリストの反復処理よりもわずかに高速です。
5.リストとタプルの適切な使用例を理解する
リストは簡単に変更できるため、時間の経過とともに変化する可能性のある項目のコレクションを保存するのに適しています。対照的に、タプルは、変更しない必要がある項目の定数コレクションに最適です。たとえば、リストは変更される可能性のある食料品リストには適していますが、曜日が変わらないため、曜日を保存するにはタプルの方が適しています。
リストの例:
# creating a list of groceries grocery_list = ["milk", "bread", "eggs", "chicken"] # adding a new item to the grocery list grocery_list.append("bananas")
タプルの例:
# creating a tuple of weekdays weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday") # trying to add a new day to the tuple weekdays.append("Saturday") # this will result in an error as tuples cannot be modified after creation
6.メモリ使用量に注意する
リストはその柔軟性によりタプルよりも多くのメモリを消費しますが、タプルは不変であるため占有するスペースが少なくなります。これは、大規模なデータセットやメモリを大量に使用するアプリケーションを扱う場合に考慮することが特に重要です。
Python の sys モジュールを使用して変数のメモリ使用量を確認できます。以下は、リストと 100 万個の要素を持つタプルのメモリ使用量を比較する例です:
# importing the sys module import sys # creating a list with one million elements numbers_list = list(range(1000000)) # checking the memory usage of the list list_memory = sys.getsizeof(numbers_list) print("Memory usage for list: ", list_memory) # output: Memory usage for list: 9000112 bytes # creating a tuple with one million elements numbers_tuple = tuple(range(1000000)) # checking the memory usage of the tuple tuple_memory = sys.getsizeof(numbers_tuple) print("Memory usage for tuple: ", tuple_memory) # output: Memory usage for tuple: 4000072 bytes
リストに比べてタプルはメモリ消費量が少ないことがわかります。
7.リストとタプルを反復処理する方法を知る
リストとタプルはどちらもループを使用して反復できますが、不変であるため、タプルの方がわずかに高速である可能性があります。また、リストには任意のタイプのデータを格納できますが、タプルにはハッシュ可能な要素のみを含めることができることに注意してください。これは、タプルは辞書キーとして使用できるが、リストは使用できないことを意味します。
リストの例:
# creating a list of numbers numbers = [1, 2, 3, 4, 5] # iterating through the list and checking if a number is present for num in numbers: if num == 3: print("Number 3 is present in the list") # output: Number 3 is present in the list
タプルの例:
# creating a tuple of colors colors = ("red", "green", "blue") # iterating through the tuple and checking if a color is present for color in colors: if color == "yellow": print("Yellow is one of the colors in the tuple") # this will not print anything as yellow is not present in the tuple
8.組み込み関数と操作に慣れる
リストにはタプルに比べて多くの組み込みメソッドがありますが、両方のデータ構造には、PCEP 試験に慣れておく必要があるさまざまな組み込み関数と演算子があります。これらには、len()、max()、min() などの関数のほか、項目がリストまたはタプル内にあるかどうかをチェックする in や not in などの演算子が含まれます。
リストの例:
# creating a list of even numbers numbers = [2, 4, 6, 8, 10] # using the len() function to get the length of the list print("Length of the list: ", len(numbers)) # output: Length of the list: 5 # using the in and not in operators to check if a number is present in the list print(12 in numbers) # output: False print(5 not in numbers) # output: True
タプルの例:
# creating a tuple of colors colors = ("red", "green", "blue") # using the max() function to get the maximum element in the tuple print("Maximum color: ", max(colors)) # output: Maximum color: red # using the in and not in operators to check if a color is present in the tuple print("yellow" in colors) # output: False print("green" not in colors) # output: False
リストとタプルの違い、適切な使用例、構文を理解することで、PCEP 試験の準備が整います。知識を確実にし、試験に合格する可能性を高めるために、さまざまなシナリオでこれらのデータ構造を使用する練習を忘れないでください。練習すれば完璧になるということを覚えておいてください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3