Pythonのログファイルのデータを並べ替える
ログの配列があるとします。その配列では、各エントリはスペースで区切られた単語の文字列です。各ログの最初の単語は英数字の識別子です。次に、以下のようなさまざまな種類の文字列があります-
- IDの後の各単語は、小文字のみで構成されます。
- IDの後の各単語は数字のみで構成されます。
これらの2種類のログを、それぞれ文字ログと数字ログと呼びます。また、tiは、各ログのIDの後に少なくとも1つの単語が含まれることが保証されています。
すべての文字ログが数字ログの前にとどまるように、ログを並べ替える必要があります。また、文字ログは、識別子を無視して辞書式順序で並べられ、同点の場合は識別子が使用されます。最後に、数字ログは元の順序で配置する必要があります。したがって、ログの最終的な順序を返す必要があります。
したがって、入力がlogs =["dig1 9 2 5 2"、 "let1 art can"、 "dig2 4 8"、 "let2 own kit dig"、 "let3 art zero"]の場合、出力は[ "let1 art can"、 "let3 art zero"、 "let2 own kit dig"、 "dig1 9 2 52"、 "dig2 4 8"]
これを解決するには、次の手順に従います-
- words:=新しいリスト
- nums:=新しいリスト
- ログインログごとに、
- s:=ログの単語のリスト
- 2番目の単語が数字の場合、
- numsの最後にログを挿入
- それ以外の場合、
- スペースで区切ってsの各要素を結合し、最後に単語配列に挿入します
- words =次に、単語配列を辞書式順序で並べ替えます
- words:=スペースで区切ってwords配列の各要素を結合し、文字列のリストを作成します
- 2つのリストの単語と数字をマージしてから、戻ります
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def reorderLogFiles(self, logs): words = [] nums = [] for log in logs: s = log.split() if s[1].isdigit(): nums.append(log) else: words.append((s[0], ' '.join(s[1:]))) words = sorted(words, key=lambda x: (x[1],x[0])) words = [' '.join(w) for w in words] return words + nums ob = Solution() print(ob.reorderLogFiles(["dig1 9 2 5 2","let1 art can","dig2 4 8","let2 own kit dig","let3 art zero"]))
入力
["dig1 9 2 5 2","let1 art can","dig2 4 8","let2 own kit dig","let3 art zero"]
出力
['let1 art can', 'let3 art zero', 'let2 own kit dig', 'dig1 9 2 5 2', 'dig24 8']
-
Pythonでの統計的思考
統計は、mlとAIを学ぶための基本です。 Pythonはこれらのテクノロジーに最適な言語であるため、統計分析を組み込んだPythonプログラムの作成方法を説明します。この記事では、さまざまなPythonモジュールを使用してグラフやチャートを作成する方法を説明します。このさまざまなグラフは、データをすばやく分析し、内部を導き出すのに役立ちます。 データの準備 さまざまなシードに関するデータを含むデータセットを取得します。このデータセットは、以下のプログラムに示されているリンクのkaggleで入手できます。さまざまなシードの特徴を比較するためのさまざまなタイプのチャートを作成するために使用される
-
Pythonで国勢調査データを分析する
国勢調査とは、特定の人口に関する情報を体系的に記録することです。キャプチャされたデータには、人口統計、経済、居住の詳細など、さまざまなカテゴリの情報が含まれます。これは、最終的に政府が現在のシナリオと将来の計画を理解するのに役立ちます。この記事では、Pythonを活用してインドの人口の人口調査データを分析する方法を説明します。さまざまな人口統計学的および経済的側面を見ていきます。次に、分析をグラフィカルに投影する電荷をプロットします。 kaggleから収集されたソース。ここにあります。 データの整理 以下のプログラムでは、最初に短いPythonプログラムを使用してデータを取得します。さらに分