リストが別のリストのサブリストであるかどうかをチェックするプログラムのアサーションテスト

nomis6432

特定のリストが別のリストのサブリストであるかどうかを確認し、TrueまたはFalse:で返す小さなプログラムを作成しました

def is_sublist_of(sublist, given):
    """ Returns whether the sublist is part of the given combination.
    The order of the sublist must also correspond to the order of the
    corresponding part in the given combination."""

    return sublist in [given[i:i+len(sublist)] for i in range(0,len(given)-len(sublist))]

このコードは私がしなければならない割り当ての一部ですが、与えられたアサートの1つは次のとおりです。

simple_list = [1, 2, 3, 4]
for element in simple_list:
    assert is_sublist_of([element], simple_list)
assert not is_sublist_of([5], simple_list)

そして、私のプログラムはこのテストに失敗します。これは、私のプログラムが特別な場合に機能しないことを意味しますか?ご覧いただきありがとうございます。

ウィレムヴァンオンセム

はいすべてのサブリストを生成するわけではありません。最後のサブリストは省略されます。とを与えるgiven = [1,2,3,4]sublist = [1]次のようになります

>>> given = [1, 2, 3, 4]
>>> sublist = [1]
>>> [given[i:i+len(sublist)] for i in range(0,len(given)-len(sublist))]
[[1], [2], [3]]

(彼らは通常これを「1つのエラーでオフ」と呼びます)。

迅速な修正は次のようになります。

return sublist in [given[i:i+len(sublist)] for i in range(0,len(given)-len(sublist)+1)]

そう+1の中でrange(..)

しかし、よりエレガントな解決策は次のとおりです。

def is_sublist_of(sublist, given):
    n = len(sublist)
    return any(sublist == given[i:i+n] for i in range(len(given)-n+1))

ここで、アルゴリズムはそのようなリストを見つけた瞬間から停止するため、すべてのサブリストを生成するわけではなく、そのうちの1つが一致するかどうかを確認します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

サブスクリプションの更新フローをストライプでテストするにはどうすればよいですか?

分類Dev

ストリームサブスクリプションがフラッターアプリのダーツでエラーをスローしますか?

分類Dev

反応ネイティブチャットアプリケーションでGraphQlサブスクリプションを使用して、GraphQlクエリからリアルタイムの更新を取得するにはどうすればよいですか?

分類Dev

サブストリングが別のストリングにあるかどうかを判別する方法

分類Dev

リスト内のアイテムがC#ウィンドウフォームアプリケーションのカスタムオブジェクトであるときに、CheckedListBoxのボックスをチェックするにはどうすればよいですか?

分類Dev

リストが別のリストのサブリストであるかどうかを確認します

分類Dev

チェックアウト前にカートアイテムのサブスクリプションプロパティ値を変更する

分類Dev

ブローカーがダウンしているため、ストリームの変更ログと再パーティションパーティションのサブセットを使用できません-ストリームはどのように動作する必要がありますか?

分類Dev

サーフェス(サブサーフェス)を長方形の中心に配置するにはどうすればよいですか?(スケーリングされたスプライトヒットボックス/コリジョンレク)

分類Dev

あるリサイクラービュー(リストビュー)から別のリサイクラービュー(リストビュー)にアイテムをドラッグアンドドロップします

分類Dev

2つ以上のリストがリストのサブセットであるかどうかをチェックするPython

分類Dev

WooCommerceサブスクリプションのサインアップ料金テキストを変更するにはどうすればよいですか?

分類Dev

あるサブスクリプションのリソースへのアクセス許可を別のサブスクリプションからのアプリケーションに付与しますか?(Azure ADマルチテナントアプリ)

分類Dev

単体テストでサブスクリプションのサブスクリプションを解除する必要がありますか?

分類Dev

マルチスレッドまたはその他の.NETテクノロジを使用して、ネットワーク、ディスク、およびプロセッサを集中的に使用するジョブを実行するプログラムをスケーリングするにはどうすればよいですか?

分類Dev

C++、バイナリ ツリーの高さ、サブツリーが空かどうかをチェックする代わりに、サブツリーがリーフ ノードであるかどうかをチェックしています。セグメンテーション違反をスローします

分類Dev

クラスメンバーが存在するかどうかのC ++プリプロセッサテスト

分類Dev

C#で1つのリストが別のリストのサブセットであるかどうかを比較するための最良のアプローチ

分類Dev

YouTubeチャンネルのあなたのチューブサブスクライバーのサブスクリプションリストを取得するにはどうすればよいですか?

分類Dev

Laravel / OctoberCMS Webサイトの別のプロジェクトのサブディレクトリにあるページをセットアップ/アクセスするにはどうすればよいですか?

分類Dev

リストが順番に別のリストのサブシーケンスであるかどうかを確認する方法

分類Dev

Dartの単一サブスクリプションストリームに複数の変換をチェーンするのは安全ですか?

分類Dev

ドラッグアンドドロップでリストビューアイテムをあるリストから別のリストに移動するにはどうすればよいですか?UWP C#

分類Dev

フェニックスで特定の応答のクライアントサブスクリプションを使用してWebソケットサーバーを構築するにはどうすればよいですか?

分類Dev

リストが重複で機能する別のリストのローテーションであるかどうかを確認する

分類Dev

Nestアプリケーションをブートストラップできません。「TypeError:オブジェクトのプロトタイプはオブジェクトのみであるか、null:未定義である可能性があります」

分類Dev

リストがパンダデータフレーム内の別のリストのサブセットであるかどうかの確認

分類Dev

項が長さのリストであるかどうかをチェックするアーランガードシーケンス== n

分類Dev

プログラムのローリングリストからショートカットを削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    サブスクリプションの更新フローをストライプでテストするにはどうすればよいですか?

  2. 2

    ストリームサブスクリプションがフラッターアプリのダーツでエラーをスローしますか?

  3. 3

    反応ネイティブチャットアプリケーションでGraphQlサブスクリプションを使用して、GraphQlクエリからリアルタイムの更新を取得するにはどうすればよいですか?

  4. 4

    サブストリングが別のストリングにあるかどうかを判別する方法

  5. 5

    リスト内のアイテムがC#ウィンドウフォームアプリケーションのカスタムオブジェクトであるときに、CheckedListBoxのボックスをチェックするにはどうすればよいですか?

  6. 6

    リストが別のリストのサブリストであるかどうかを確認します

  7. 7

    チェックアウト前にカートアイテムのサブスクリプションプロパティ値を変更する

  8. 8

    ブローカーがダウンしているため、ストリームの変更ログと再パーティションパーティションのサブセットを使用できません-ストリームはどのように動作する必要がありますか?

  9. 9

    サーフェス(サブサーフェス)を長方形の中心に配置するにはどうすればよいですか?(スケーリングされたスプライトヒットボックス/コリジョンレク)

  10. 10

    あるリサイクラービュー(リストビュー)から別のリサイクラービュー(リストビュー)にアイテムをドラッグアンドドロップします

  11. 11

    2つ以上のリストがリストのサブセットであるかどうかをチェックするPython

  12. 12

    WooCommerceサブスクリプションのサインアップ料金テキストを変更するにはどうすればよいですか?

  13. 13

    あるサブスクリプションのリソースへのアクセス許可を別のサブスクリプションからのアプリケーションに付与しますか?(Azure ADマルチテナントアプリ)

  14. 14

    単体テストでサブスクリプションのサブスクリプションを解除する必要がありますか?

  15. 15

    マルチスレッドまたはその他の.NETテクノロジを使用して、ネットワーク、ディスク、およびプロセッサを集中的に使用するジョブを実行するプログラムをスケーリングするにはどうすればよいですか?

  16. 16

    C++、バイナリ ツリーの高さ、サブツリーが空かどうかをチェックする代わりに、サブツリーがリーフ ノードであるかどうかをチェックしています。セグメンテーション違反をスローします

  17. 17

    クラスメンバーが存在するかどうかのC ++プリプロセッサテスト

  18. 18

    C#で1つのリストが別のリストのサブセットであるかどうかを比較するための最良のアプローチ

  19. 19

    YouTubeチャンネルのあなたのチューブサブスクライバーのサブスクリプションリストを取得するにはどうすればよいですか?

  20. 20

    Laravel / OctoberCMS Webサイトの別のプロジェクトのサブディレクトリにあるページをセットアップ/アクセスするにはどうすればよいですか?

  21. 21

    リストが順番に別のリストのサブシーケンスであるかどうかを確認する方法

  22. 22

    Dartの単一サブスクリプションストリームに複数の変換をチェーンするのは安全ですか?

  23. 23

    ドラッグアンドドロップでリストビューアイテムをあるリストから別のリストに移動するにはどうすればよいですか?UWP C#

  24. 24

    フェニックスで特定の応答のクライアントサブスクリプションを使用してWebソケットサーバーを構築するにはどうすればよいですか?

  25. 25

    リストが重複で機能する別のリストのローテーションであるかどうかを確認する

  26. 26

    Nestアプリケーションをブートストラップできません。「TypeError:オブジェクトのプロトタイプはオブジェクトのみであるか、null:未定義である可能性があります」

  27. 27

    リストがパンダデータフレーム内の別のリストのサブセットであるかどうかの確認

  28. 28

    項が長さのリストであるかどうかをチェックするアーランガードシーケンス== n

  29. 29

    プログラムのローリングリストからショートカットを削除するにはどうすればよいですか?

ホットタグ

アーカイブ