Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストに連続番号が含まれているかどうかを確認します


データ分析のニーズによっては、Pythonデータコンテナに連番が存在するかどうかを確認する必要がある場合があります。以下のプログラムでは、Alistの要素の中に連続した数字があるかどうかを調べます。

範囲と並べ替えあり

ソートされた関数は、リストの要素をソートされた順序で再配置します。次に、最小関数と最大関数を使用して、リストから最小値と最大値を取得する範囲関数を適用します。上記の操作の結果を2つのリストに保存し、それらが等しいかどうかを比較します。

listA = [23,20,22,21,24]
sorted_list = sorted(listA)
#sorted(l) ==
range_list=list(range(min(listA), max(listA)+1))
if sorted_list == range_list:
   print("listA has consecutive numbers")
else:
   print("listA has no consecutive numbers")

# Checking again
listB = [23,20,13,21,24]
sorted_list = sorted(listB)
#sorted(l) ==
range_list=list(range(min(listB), max(listB)+1))
if sorted_list == range_list:
   print("ListB has consecutive numbers")
else:
   print("ListB has no consecutive numbers")

出力

上記のコードを実行すると、次の結果が得られます-

listA has consecutive numbers
ListB has no consecutive numbers

numpydiffとソート済み

numpyのdiff関数は、並べ替えられた後、各数値の違いを見つけることができます。この違いの合計を取ります。すべての数字が連続している場合は、リストの長さに一致します。

import numpy as np
listA = [23,20,22,21,24]

sorted_list_diffs = sum(np.diff(sorted(listA)))
if sorted_list_diffs == (len(listA) - 1):
   print("listA has consecutive numbers")
else:
   print("listA has no consecutive numbers")

# Checking again
listB = [23,20,13,21,24]
sorted_list_diffs = sum(np.diff(sorted(listB)))
if sorted_list_diffs == (len(listB) - 1):
   print("ListB has consecutive numbers")
else:
   print("ListB has no consecutive numbers")

出力

上記のコードを実行すると、次の結果が得られます-

listA has consecutive numbers
ListB has no consecutive numbers

  1. リストに負の数を出力するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 反復可能なリストを指定すると、リスト内のすべての負の数を出力する必要があります。 ここでは、特定の問題ステートメントに対する3つのアプローチについて説明します。 アプローチ1-拡張forループの使用 例 list1 = [-11,23,-45,23,-64,-22,-11,24] # iteration for num in list1:    # check    if num < 0:       prin

  2. 文字列に数字のみが含まれているかどうかをPythonで確認するにはどうすればよいですか?

    Pythonには組み込み関数isdigit()があり、文字列内のすべての文字が数字(0〜9)の場合にtrueを返します >>> string='9764135408' >>> string.isdigit() True >>> string='091-9764135408' >>> string.isdigit() False 正規表現を使用して、文字列に数字のみが含まれているかどうかを確認することもできます。 >>> import re >>> boo