Python リスト操作ガイド: インデックス作成、スライス、トラバーサル、および包括的なアプリケーション

リスト

導入

List は Python で最も一般的に使用されるデータ構造の 1 つで、複数の要素を格納でき、要素のインデックス付けとスライス操作をサポートします。この記事では、リストの基本操作と一般的なメソッドを紹介します。

リストの作成

角括弧を使用して[]リストを作成します。リストは空のリストでも要素を含むリストでもかまいません。例えば:

my_list = []  # 创建一个空列表

my_list = [10]  # 创建一个只包含一个元素的列表

my_list = [10, 20, 30, 40, 50]  # 创建一个包含多个元素的列表

インデックス作成とスライス

リスト内の要素は挿入順に格納され、各要素には 0 から数えられるインデックスがあります。インデックスを使用してリスト内の要素を取得したり、スライスを使用してサブリストを取得したりできます。

サンプルコード:

my_list = [10, 20, 30, 40, 50]

# 通过索引获取元素
print(my_list[0])  # 输出:10
print(my_list[4])  # 输出:50

# 使用切片获取子列表
print(my_list[1:4])  # 输出:[20, 30, 40]

リストの長さ

この関数を使用して、len()リスト内の要素の数、つまりリストの長さを取得します。

サンプルコード:

my_list = [10, 20, 30, 40, 50]
print(len(my_list))  # 输出:5

リストの結合と繰り返し

2 つのリストを 1 つのリストに連結するために使用し+*リストを指定した回数繰り返すために使用します。

サンプルコード:

list1 = [1, 2, 3]
list2 = [4, 5, 6]

new_list = list1 + list2
print(new_list)  # 输出:[1, 2, 3, 4, 5, 6]

repeated_list = list1 * 3
print(repeated_list)  # 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]

要素が存在するかどうかを確認する

inおよび を使用して、not in指定した要素がリストに存在するかどうかを確認します。

サンプルコード:

stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']

print('牛魔王' in stus)  # 输出:False
print('孙悟空' not in stus)  # 输出:False

リストメソッド

リストには、リストの追加、削除、変更、クエリに使用できる一般的に使用されるメソッドが多数用意されています。

Index() メソッド

index()このメソッドは、リスト内で指定された要素が最初に出現するインデックスを取得するために使用され、検索の開始位置と終了位置を指定できます。

サンプルコード:

stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']

print(stus.index('沙和尚'))  # 输出:2
print(stus.index('沙和尚', 3, 6))  # 输出:3

# 如果要获取列表中没有的元素,会抛出异常
# print(stus.index('牛魔王'))  # 抛出 ValueError 异常

count() メソッド

count()指定された要素がリスト内に出現する回数をカウントするために使用されるメソッド。

サンプルコード:

stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精', '沙和尚', '沙和尚']

print(stus.count('沙和尚'))  # 输出:3

リストの変更と削除

要素の変更

リスト内の要素の値は、インデックス作成によって変更できます。

サンプルコード:

my_list = [10, 20, 30, 40, 50]

my_list[2] = 35
print(my_list)  # 输出:[10, 20, 35, 40, 50]

要素の削除

リスト内の要素は、delキーワードまたはメソッドを使用して削除できます。pop()

キーワードを使用del:

サンプルコード:

my_list = [10, 20, 30, 40, 50]

del my_list[2]
print(my_list)  # 输出:[10, 20, 40, 50]

使用方法pop():

pop()指定されたインデックスにある要素を削除し、削除された要素の値を返すために使用されるメソッド。インデックスが指定されていない場合、デフォルトでは最後の要素が削除されます。

サンプルコード:

my_list = [10, 20, 30, 40, 50]

removed_element = my_list.pop(2)
print(removed_element)  # 输出:30
print(my_list)  # 输出:[10, 20, 40, 50]

removed_element = my_list.pop()
print(removed_element)  # 输出:50
print(my_list)  # 输出:[10, 20, 40]

リストの並べ替えと逆順

sort()リストはメソッドを使用して並べ替えたり、reverse()メソッドを使用して逆に並べ替えたりできます。

サンプルコード:

my_list = [3, 1, 4, 2, 5]

my_list.sort()
print(my_list)  # 输出:[1, 2, 3, 4, 5]

my_list.reverse()
print(my_list)  # 输出:[5, 4, 3, 2, 1]

要素の追加

append()リストの末尾に要素を追加するには メソッドを使用し、insert()指定されたインデックス位置に要素を挿入するには メソッドを使用します。

サンプルコード:

my_list = [10, 20, 30]

my_list.append(40)
print(my_list)  # 输出:[10, 20, 30, 40]

my_list.insert(1, 15)
print(my_list)  # 输出:[10, 15, 20, 30, 40]

リストのコピー

Python では、リストは可変オブジェクトであり、リストを別の変数に割り当てると、実際にはリストへの参照が新しい変数に割り当てられます。いずれかの変数の値を変更すると、もう一方の変数も影響を受けます。

copy()これを回避するには、メソッドまたはスライス操作を使用してリストのコピーを作成します。

サンプルコード:

my_list = [10, 20, 30]
copy_list = my_list.copy()
slice_list = my_list[:]

my_list[0] = 5

print(copy_list)  # 输出:[10, 20, 30]
print(slice_list)  # 输出:[10, 20, 30]

このようにして、元のリストを変更した後、コピー リストは影響を受けません。

もちろん、リストにはさらに多くの可能性があります。

リストの走査

ループを使用して、リスト内のすべての要素を反復処理し、各要素に対して操作を実行できます。

サンプルコード:

stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧']

# 使用 for 循环遍历列表
for stu in stus:
    print(stu)

# 使用 while 循环遍历列表
i = 0
while i < len(stus):
    print(stus[i])
    i += 1

リストの一部

サブリストの取得に加えて、スライス操作ではリストの要素を変更および削除できます。

サンプルコード:

my_list = [10, 20, 30, 40, 50]

# 修改切片中的元素
my_list[1:4] = [25, 35, 45]
print(my_list)  # 输出:[10, 25, 35, 45, 50]

# 删除切片中的元素
my_list[1:4] = []
print(my_list)  # 输出:[10, 50]

リストの入れ子

リストには他のリストを要素として含めることができ、入れ子構造を形成します。

サンプルコード:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

print(matrix[0])  # 输出:[1, 2, 3]
print(matrix[1][2])  # 输出:6

リスト内包表記

リスト内包表記は、ループと条件文を使用してリストを作成する簡潔な方法です。

サンプルコード:

# 创建一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares)  # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 创建一个只包含偶数的列表
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print(even_numbers)  # 输出:[2, 4, 6, 8, 10]

おすすめのPythonブティックコラム


Pythonの基礎知識(0基礎入門)

【Python基礎知識】 0.print()関数
【Python基礎知識】 1.データ型、データ応用、データ変換
【Python基礎知識】 2.if条件判定と条件ネスト
【Python基礎知識】 3.input()関数
【Pythonの基礎知識】 4. リストと辞書
【Pythonの基礎知識】 5. Forループとwhileループ
【Pythonの基礎知識】 6. ブール値と4種類のステートメント(break、Continue、pass、else)
【Pythonの基礎知識】 7. 実践操作 ~Pythonを使って「Word PK」ゲームを実装してみよう(1)
【Pythonの基礎知識】 7. 実践操作 ~ Pythonを使って「Word PK」ゲームを実装してみよう(2)
【Pythonの基礎】知識】 8. プログラミング的思考:how to 問題解決編~思考編
【Pythonの基礎知識】 9. 関数の定義と呼び出し
【Pythonの基礎知識】 10. 関数を使ったプログラムの書き方~実践編
【Pythonの基礎知識】 10. Python を使ったじゃんけんゲームの実装 - 関数の実践・操作編
【Python の基礎編】 11. デバッグの方法 ~よくあるエラー原因とトラブルシューティングの考え方~ 思考編
【Python の基礎編】 12. クラスとオブジェクト (1)
【Python の基礎編】 】 12. クラスとオブジェクト (2)
【Pythonの基礎知識】 13. クラスとオブジェクト (3)
【Pythonの基礎知識】 13. クラスとオブジェクト (4)
【Pythonの基礎知識】 14. ライブラリ管理システムの構築(クラスとオブジェクトの実践的な操作)
【Pythonの基礎知識】 15. コーディングの基礎知識
【Pythonの基礎知識】 16. ファイルの読み書きと操作の基礎
【Pythonの基礎知識】 16. 「古詩書き取り問題」のPython実装(ファイルの読み書きとコーディング~実践操作)
【Pythonの基礎知識】 17. モジュールの概念と導入方法
【Python基礎】 18. 実践的な運用~Pythonを使って大量メール自動送信~
【Python基礎】 19. プロダクトの考え方とフローチャートの使い方~考え方
【Python基礎】 20. Pythonの実装「お昼何を食べるか」の(プロダクト思考~実践運用編)
【Pythonの基礎知識】 21. 効率よくダラダラ開く正しい開き方~卒業
【Python ファイル処理】 CSV ファイルの読み込み・加工・書き込み
【Python ファイル処理】 】Excel自動処理(openpyxlを使用)
【Pythonファイル処理】 - Excel形式処理


Python クローラーの知識

【python クローラー】 1. クローラーの基礎知識
【python クローラー】 2. Web ページの基礎知識
【python クローラー】 3. クローラー初体験(BeautifulSoup 解析)
【python クローラー】 4. クローラーの実践操作(ディッシュクローリング)
【pythonクローラー】 5 .クローラーの実践操作(歌詞のクローリング)
【Python クローラー】 6. クローラーの実践操作(パラメーター付きデータのリクエスト)
【Python クローラー】 7. クロールされたデータはどこに保存されるの?
[Python クローラー] 8. 過去を振り返り、新しいことを学ぶ
[Python クローラー] 9. Cookie (クッキー) でログインする
[Python クローラー] 10. ブラウザーに自動で動作するように命令する (Selenium)
[Python クローラー] 11. クローラーに任せる時間通りに報告する
[Python クローラー] 12. クローラー軍団を構築する
[Python クローラー] 13. 太らない食事とは (クローラー実習)
[Python クローラー] 14. Scrapy フレームワークの説明
[Python クローラー] 15. Scrapy フレームワークの実践(人気のジョブクローリング Take)
【Python クローラー】 16. クローラーの知識ポイントのまとめと復習

おすすめ

転載: blog.csdn.net/qq_41308872/article/details/132760144