リスト内の数字の増加する桁をソート/フィルタリング/合計する最も速い方法は何ですか

DADI

例:

L = [12,14,22,41,21,23]

結果は次のようになります。

R == [12,14,22,23]

数字の桁は昇順である必要があります。以下は私の解決策であり、どちらも機能しますが、どちらも遅すぎます。

それをソートする最速の方法は何ですか?

解決策1:

R = filter(lambda j: int(''.join(sorted(str(j))))==j , L)

解決策2:

for j in L:
      if int(''.join(sorted(str(j))))==j:
          R.append(j)

質問2-さらに、これらの対応する数字を合計して5に等しいものが必要です。

これが私の解決策です。繰り返しますが、機能しますが、遅すぎます。

それで、それを行う最も速い方法は何ですか。

newR_should_be == [14,23]

1:

newR = filter(lambda i: sum([int(x) for x in str(i)])==5 ,R)

二:

for i in R:
         if sum([int(x) for x in str(i)])==5:
             newR.append(i)

どんな助けでもいただければ幸いです。

alexdor

OlivierMelançonソリューションは非常にエレガントです。ただし、少し醜いコードを記述したい場合は、文字列変換を回避し、両方のテストを同時に実行することで、コードをかなり高速に実行できます。私はあなたのソリューションast1、OlivierMelançonをt2として実装し、私のソリューションをt3として実装しました。

def FastFilter(n):
    x = n % 10
    s = x
    n //= 10
    while n:
        y = n % 10
        s += y
        if (x < y):
            return False
        x = y;
        n //= 10
    return s==5

def sort_by_digits(l):
    return sorted(set(int(''.join(sorted(str(x)))) for x in l))

def filter_by_sum(l, total=5):
    return [x for x in map(str, l) if sum(map(int, x)) == total]

def t1(L):
    R = filter(lambda j: int(''.join(sorted(str(j))))==j , L)
    newR = filter(lambda i: sum([int(x) for x in str(i)])==5 ,R)
    return sorted(newR)

def t2(l):
    return sort_by_digits(filter_by_sum(l))

def t3(l):
    return sorted(filter(FastFilter, l))

l = [12, 14, 22, 41, 21, 23]

%timeit t1(l)
%timeit t2(l)
%timeit t3(l)

与える

11.2 µs ± 24.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
8.88 µs ± 24.4 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
2.71 µs ± 12.8 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

(Linuxの)ディレクトリ内の多数のファイルをカウントする最も速く/最も簡単な方法は何ですか?

分類Dev

別のリストの値に基づいてリストから値をフィルタリングする最も効率的な方法は何ですか

分類Dev

3番目のリストに基づいてリストのリストをフィルタリングする最も速い方法は?

分類Dev

連続ストリーミングデータをフィルタリング(スムーズ)するための最も効率的な方法は何ですか

分類Dev

列名のリストからパンダデータフレームの列をドロップする最も速い方法は何ですか

分類Dev

Cで-PIと+ PIの間の数値をトリミングする最も速い方法は何ですか?

分類Dev

Javaでリストをフィルタリングする最も簡単な方法は何ですか?

分類Dev

リスト内の2番目のタプルの合計をdictとして最も速く取得するのはなぜですか?

分類Dev

ディレクトリにあるファイルの数を数えるための最もリソース効率の良い方法は何ですか?

分類Dev

フロートの逆を取得する最も速い方法は何ですか

分類Dev

データベースの新しいエントリをチェックするための最も速くて効率的な方法は何ですか?

分類Dev

amoでフィルタリングされた属性メンバーを取得する最も速い方法は何ですか?

分類Dev

Perlで32MBファイルのエントロピーを計算する-最も速い方法は何ですか?

分類Dev

整数のリストの要素を符号でグループ化する最も速い方法は?

分類Dev

キーと値のペアからJSONオブジェクトを「フィルタリング」する最も効率的な方法は何ですか?

分類Dev

Pythonで100,000のHTTPリクエストを送信する最も速い方法は何ですか?

分類Dev

C#で巨大なリストをフィルタリングするための最もパフォーマンスの高い方法は?

分類Dev

ポイントがPythonのポリゴンの内側にあるかどうかを確認する最も速い方法は何ですか

分類Dev

セットをフィルタリングする最もPython的な方法は何ですか?

分類Dev

コード内の12桁の数字すべてをフィルタリングするにはどうすればよいですか?

分類Dev

APIを介してソートおよびフィルタリングされていないデータベースデータをページ付けするための最良の方法は何ですか?

分類Dev

オフセットのリストを考えると、特定のKafkaパーティションからオフセットを読み取る最も速い方法は何ですか?

分類Dev

ピッグバッグストリング内にタプルを取得するための最も効率的な方法は何ですか?

分類Dev

Viエディター:ファイル内の複数の行を削除する最も速い方法は何ですか?

分類Dev

Viエディター:ファイル内の複数の行を削除する最も速い方法は何ですか?

分類Dev

(配列)、(文字列)などのV8コンストラクター(グループ)エントリは、時間とともにメモリ内で大きくなります。これらのエントリのメモリの増加を阻止する方法は?出来ますか?

分類Dev

Debianベースのディストリビューションにインストールされているソフトウェアを一覧表示する最も堅牢な方法は何ですか?

分類Dev

(リスト内の)1桁の数字が残るまですべての数字を合計する方法

分類Dev

iOS:プログラムでスクリーンショットを作成するための最も速くてパフォーマンスの高い方法は何ですか?

Related 関連記事

  1. 1

    (Linuxの)ディレクトリ内の多数のファイルをカウントする最も速く/最も簡単な方法は何ですか?

  2. 2

    別のリストの値に基づいてリストから値をフィルタリングする最も効率的な方法は何ですか

  3. 3

    3番目のリストに基づいてリストのリストをフィルタリングする最も速い方法は?

  4. 4

    連続ストリーミングデータをフィルタリング(スムーズ)するための最も効率的な方法は何ですか

  5. 5

    列名のリストからパンダデータフレームの列をドロップする最も速い方法は何ですか

  6. 6

    Cで-PIと+ PIの間の数値をトリミングする最も速い方法は何ですか?

  7. 7

    Javaでリストをフィルタリングする最も簡単な方法は何ですか?

  8. 8

    リスト内の2番目のタプルの合計をdictとして最も速く取得するのはなぜですか?

  9. 9

    ディレクトリにあるファイルの数を数えるための最もリソース効率の良い方法は何ですか?

  10. 10

    フロートの逆を取得する最も速い方法は何ですか

  11. 11

    データベースの新しいエントリをチェックするための最も速くて効率的な方法は何ですか?

  12. 12

    amoでフィルタリングされた属性メンバーを取得する最も速い方法は何ですか?

  13. 13

    Perlで32MBファイルのエントロピーを計算する-最も速い方法は何ですか?

  14. 14

    整数のリストの要素を符号でグループ化する最も速い方法は?

  15. 15

    キーと値のペアからJSONオブジェクトを「フィルタリング」する最も効率的な方法は何ですか?

  16. 16

    Pythonで100,000のHTTPリクエストを送信する最も速い方法は何ですか?

  17. 17

    C#で巨大なリストをフィルタリングするための最もパフォーマンスの高い方法は?

  18. 18

    ポイントがPythonのポリゴンの内側にあるかどうかを確認する最も速い方法は何ですか

  19. 19

    セットをフィルタリングする最もPython的な方法は何ですか?

  20. 20

    コード内の12桁の数字すべてをフィルタリングするにはどうすればよいですか?

  21. 21

    APIを介してソートおよびフィルタリングされていないデータベースデータをページ付けするための最良の方法は何ですか?

  22. 22

    オフセットのリストを考えると、特定のKafkaパーティションからオフセットを読み取る最も速い方法は何ですか?

  23. 23

    ピッグバッグストリング内にタプルを取得するための最も効率的な方法は何ですか?

  24. 24

    Viエディター:ファイル内の複数の行を削除する最も速い方法は何ですか?

  25. 25

    Viエディター:ファイル内の複数の行を削除する最も速い方法は何ですか?

  26. 26

    (配列)、(文字列)などのV8コンストラクター(グループ)エントリは、時間とともにメモリ内で大きくなります。これらのエントリのメモリの増加を阻止する方法は?出来ますか?

  27. 27

    Debianベースのディストリビューションにインストールされているソフトウェアを一覧表示する最も堅牢な方法は何ですか?

  28. 28

    (リスト内の)1桁の数字が残るまですべての数字を合計する方法

  29. 29

    iOS:プログラムでスクリーンショットを作成するための最も速くてパフォーマンスの高い方法は何ですか?

ホットタグ

アーカイブ