Python ループに関する 11 のヒント

この記事は、Lemony Hug によるHuawei Cloud Community の「Loop Skills Guide in Python 」から共有されたものです。

データを処理するとき、異なる種類や条件のデータを保存するために複数のリストを作成する必要がある場合があります。 Python では、ループを使用してこれらのリストを迅速かつ効率的に作成できます。この記事では、ループを使用して Python で複数のリストを作成する方法を説明し、コード例を示します。

Python はループを使用して複数のリストを作成します

Python では、リスト内包表記またはループと条件文を組み合わせて使用​​して、複数のリストを作成できます。以下に、いくつかの一般的なシナリオと対応するコード例を示します。

1. 一定数の空のリストを作成する

複数の空のリストを作成する必要があるとします。リストの内包表記とループを使用できます。

# リスト内包表記を使用して複数の空のリストを作成する
リスト数 = 5
empty_lists = [[] for _ in range(num_lists)]

print(空のリスト)

これにより、5 つの空のリストからなるリストが作成されます。

2. 条件に基づいて複数のリストを作成する

場合によっては、特定の条件に基づいて異なるリストを作成する必要があります。たとえば、奇数と偶数を 2 つのリストに格納したいとします。

#奇数リストと偶数リストを作成する
数値 = [1、2、3、4、5、6、7、8、9、10]
奇数 = []
偶数 = []

数字の num の場合:
    数値 % 2 == 0 の場合:
        偶数.append(数値)
    それ以外:
        奇数.追加(数値)

print("奇数のリスト:",odd_numbers)
print("偶数のリスト:", Even_numbers)

これにより、数値のパリティに基づいて 2 つのリストが作成されます。

3. 文字列の長さに基づいて複数のリストを作成する

場合によっては、文字列をその長さに基づいて分類し、異なるリストに保存する必要があります。

#文字列の長さに基づいて複数のリストを作成する
単語 = ["リンゴ"、"バナナ"、"オレンジ"、"梨"、"ブドウ"、"キウイ"]
ショートワード = []
ミディアムワード = []
ロングワード = []

言葉で言えば:
    len(ワード) < 5の場合:
        short_words.append(単語)
    elif len(単語) < 7:
        Medium_words.append(単語)
    それ以外:
        long_words.append(単語)

print("短い単語リスト:", short_words)
print("中程度の長さの単語リスト:",medium_words)
print("長い単語リスト:", long_words)

これにより、文字列の長さに基づいて単語が 3 つの異なるリストに保存されます。

4. データ型に基づいて複数のリストを作成する

場合によっては、データをそのタイプに基づいて異なるリストに保存する必要があります。たとえば、整数、浮動小数点、文字列を別のリストに保存したいとします。

#データ型に基づいて複数のリストを作成する
データ = [1, 2.5, "リンゴ", 4, "バナナ", 6.7, "オレンジ", 8, 9, "ナシ"]
整数 = []
浮動小数点 = []
文字列 = []

データ内の項目の場合:
    if isinstance(item, int):
        整数.append(項目)
    elif isinstance(item, float):
        floats.append(アイテム)
    elif isinstance(item, str):
        文字列.append(項目)

print("整数のリスト:", integers)
print("浮動小数点数のリスト:", floats)
print("文字列のリスト:", strings)

これにより、データはそのタイプに基づいて 3 つの異なるリストに保存されます。

5. 条件に基づいて複数のリストを動的に作成する

場合によっては、動的に変化する条件に基づいて複数のリストを作成する必要があります。たとえば、ユーザーが入力した数量に基づいて、対応する数量のリストを作成したいとします。

# ユーザー入力に基づいて複数のリストを動的に作成する
num_lists = int(input("作成するリストの数を入力してください: "))
lists = [[] for _ in range(num_lists)]

print("作成された", num_lists, "空のリスト:", lists)

これにより、ユーザーが入力した数に基づいて、対応する数の空のリストが動的に作成されます。

6. 特定の範囲の数値を含む複数のリストを作成する

場合によっては、特定の範囲の数値に基づいて複数のリストを作成する必要があります。たとえば、0 から 9 までの数値を 1 桁に基づいて 10 個のリストに保存したいとします。

# 特定の範囲の数値を含む複数のリストを作成する
リスト数 = 10
range_lists = [[] for _ in range(num_lists)]

range(10) の num の場合:
    range_lists[num % num_lists].append(num)

print("1桁で格納されたリスト:")
for i, lst in enumerate(range_lists):
    print(f"リスト{i}:", lst)

これにより、0 から 9 までの数値が 10 個の個別のリストに格納され、1 桁ごとに並べ替えられます。

7. キーのハッシュ値に基づいて複数のリストを作成する

場合によっては、キーのハッシュ値に基づいてデータを複数のリストにグループ化して保存したいことがあります。たとえば、キーと値のペアのセットがあり、キーのハッシュに基づいてそれらを異なるリストに保存したいとします。

# キーのハッシュ値に基づいて複数のリストを作成します
データ = {「リンゴ」: 3、「バナナ」: 5、「オレンジ」: 2、「梨」: 4、「ブドウ」: 6}
リスト数 = 3
hash_lists = [[] for _ in range(num_lists)]

data.items() のキーと値の場合:
    hash_index = ハッシュ(キー) % リスト数
    hash_lists[ハッシュインデックス].append((キー, 値))

print("キーのハッシュ値に従って格納されたリスト:")
for i, lst in enumerate(hash_lists):
    print(f"リスト{i}:", lst)

これにより、キーのハッシュに基づいて、キーと値のペアが 3 つの異なるリストに保存されます。

8. リスト内の要素の属性に基づいて複数のリストを作成します

場合によっては、リスト内の要素の属性値に基づいて複数のリストを作成する必要があります。たとえば、一連の学生オブジェクトがあり、それらを成績に基づいて合格と不合格の 2 つのリストに保存したいとします。

#学生オブジェクトのスコアに基づいて複数のリストを作成する
クラスの生徒:
    def __init__(自分自身、名前、スコア):
        self.name = 名前
        self.score = スコア

学生 = [
    学生(「アリス」、85)、
    学生(「ボブ」、60歳)、
    学生(「チャーリー」、75)、
    学生(「デイビッド」、40歳)、
    学生(「エマ」、95)

合格する生徒 = []
失敗した生徒 = []

学生の中の学生向け:
    Student.score >= 60の場合:
        pass_students.append(学生)
    それ以外:
        failed_students.append(学生)

print("合格者一覧:")
通過中の学生の場合_students:
    print(f"{生徒の名前}: {生徒のスコア}")

print("\n不合格者のリスト:")
failed_students の学生の場合:
    print(f"{生徒の名前}: {生徒のスコア}")

これにより、学生は成績に基づいて合格と不合格の 2 つのリストに保存されます。

9. インデックス範囲に基づいて複数のリストを作成する

場合によっては、インデックス範囲に基づいてリストを複数のサブリストに分割する必要があります。たとえば、一連の数値を含むリストがあり、それをいくつかの小さなサブリストに分割したいとします。

#インデックス範囲に基づいて複数のリストを作成する
数値 = [1、2、3、4、5、6、7、8、9、10]
リスト数 = 3
分割リスト = []

範囲 (num_lists) 内の i の場合:
    start_index = i * len(numbers) // num_lists
    end_index = (i + 1) * len(numbers) // num_lists
    Split_lists.append(数値[開始インデックス:終了インデックス])

print("分割リスト:")
for i, lst in enumerate(split_lists):
    print(f"リスト{i + 1}:", lst)

これにより、インデックス範囲に基づいて元のリストが 3 つのサブリストに分割されます。

10. リスト要素の値に基づいてグループ化して複数のリストを作成する

場合によっては、値に基づいてリスト要素をグループ化し、異なるリストに保存する必要があります。たとえば、一連の整数があり、それらをパリティに基づいて 2 つのリストに格納したいとします。

#リスト要素の値に基づいてグループ化して複数のリストを作成
数値 = [1、2、3、4、5、6、7、8、9、10]
奇数 = []
偶数 = []

数字の num の場合:
    数値 % 2 == 0 の場合:
        偶数.append(数値)
    それ以外:
        奇数.追加(数値)

print("奇数のリスト:",odd_numbers)
print("偶数のリスト:", Even_numbers)

これにより、パリティに基づいてリスト要素が奇数リストと偶数リストにそれぞれ保存されます。

11. 要素が条件を満たすかどうかに基づいて複数のリストを作成する

場合によっては、要素が特定の条件を満たすかどうかに基づいて、異なるリストに要素を保存する必要があります。たとえば、一連の数値があり、5 以上の数値と 5 未満の数値を 2 つのリストに格納したいとします。

#要素が条件を満たすかどうかに基づいて複数のリストを作成します
数値 = [1、2、3、4、5、6、7、8、9、10]
より大きい_5 = []
5 未満 = []

数字の num の場合:
    数値 >= 5 の場合:
        大きい_5.append(数値)
    それ以外:
        5 未満.append(数値)

print("5 以上の数値のリスト:",greater_than_5)
print("5 未満の数値のリスト:",less_than_5)

これにより、数値が 5 以上かどうかに基づいて 2 つの異なるリストに数値が保存されます。

要約する

全体として、この記事では、Python のループを使用して複数のリストを作成するさまざまな方法を紹介し、具体的なコード例を使用して実証および説明しました。固定数量、条件、データ型、属性、インデックス範囲、ハッシュ値などのさまざまな観点から始めて、リスト内包表記や条件文と組み合わせたループを柔軟に使用して複数のリストを作成する方法を検討しました。これらの方法により、コードの柔軟性と保守性が向上するだけでなく、開発プロセスが高速化され、プログラムのパフォーマンスも向上します。

この記事の学習を通じて、読者は Python でデータを処理し、複数のリストに整理するスキルを習得し、データをより効果的に操作および管理することができます。同時に、ループやリスト内包表記などの Python 機能を柔軟に使用することで、コードをより簡潔、明確、エレガントにすることができます。実際のプロジェクトでは、特定のニーズに応じて複数のリストを作成するための適切な方法を選択することがプログラミングの重要なスキルとなり、コードの品質と効率の向上に役立ちます。

クリックしてフォローし、できるだけ早くHuawei Cloudの新しいテクノロジーについて学びましょう~

私はオープンソースの産業用ソフトウェアを諦めることにしました - OGG 1.0 がリリースされ、Huawei がすべてのソース コードを提供しました。Google Python Foundation チームは「コード クソ マウンテン」によって解雇されました Fedora Linux 40が正式リリース。有名ゲーム会社がリリース 新規定:従業員の結婚祝儀は10万元を超えてはならない。チャイナユニコム世界初のオープンソースモデルLlama3 8B中国語版をリリース。Pinduoduoに賠償判決国内のクラウド入力方式に500万元の罰金- クラウドデータアップロードのセキュリティ問題がないのはファーウェイだけ
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4526289/blog/11059478