forループなしで2D配列を検索するにはどうすればよいですか?

価格

aがVec<Vec<char>>あり、特定の文字のすべてのx、y位置を検索したいのですが、たとえば「x」としましょう。列挙して手動でソリューションを構築するdoubleforループを使用できます(これは正しいことだと思います)が、イテレーターだけでそれを行うための良い方法はありますか?

多かれ少なかれ私はこれをきれいにする方法を探しています:

let locs: Vec<(usize, (usize, &char))> = grid.iter()
    .enumerate()
    .flat_map(|(ind, row)|
          iter::repeat(ind)
            .zip(row.iter()
               .enumerate()))
    .filter(|&(x, (y, ch))| ch == 'x')
    .collect();

1つは、タプルをフラット化する方法はありますか?

クリスエマーソン

タプルをフラット化する私の試みは次のとおりです。

let locs: Vec<(usize, usize, char)> = grid.iter()
    .enumerate()
    .flat_map(|(y, row)| {
        row.iter()
           .enumerate()
           .map(move |(x, &c)| (x,y,c))
    })
    .filter(|&(_,_,c)| c == 'x')
    .collect();
println!("{:?}", locs)

遊び場

私のアプローチは、最初に平坦化し(x,y,c)てからフィルタリングすることでした。私は、char参照ではなく実際のsを返す自由を取りました

moveそうでない場合は(イテレータ内側、外側のクロージャよりも長く住んで、)内部クロージャは、外側への参照を持っていたので、閉鎖が必要でしたy

これをもっと頻繁に行いたい場合は、次のようなIterator実装を作成します。

let locs: Vec<(usize, usize, char) =
    iter2d(grid)
    .filter(&|_,_,c| c == 'x')
    .collect();

実装は、読者の演習として残されています。:-)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ダブルforループなしで2D配列にハッシュマップを入力するにはどうすればよいですか?

分類Dev

forループを使用して既存の2D配列の最後に2D配列を数回追加するにはどうすればよいですか?

分類Dev

2Dリストで単語を検索し、行番号、列番号、方向を含むタプルを作成するにはどうすればよいですか?

分類Dev

2D連想配列をループなしでcsvに保存するにはどうすればよいですか?

分類Dev

Pythonでデータ型を維持しながら、ファイルを2D配列に解析するにはどうすればよいですか?

分類Dev

2D配列がforループでのみ一意であるかどうかを確認するにはどうすればよいですか?

分類Dev

3列のnumpy配列(gpname、x、y)のグループを使用して2D散布図を作成するにはどうすればよいですか?

分類Dev

2D配列の変数の行を介してコードをループするにはどうすればよいですか?

分類Dev

Notepad ++検索がループしないようにするにはどうすればよいですか?

分類Dev

辞書の辞書をループして2D配列を作成するにはどうすればよいですか?

分類Dev

2D配列でバイナリ検索を適用するにはどうすればよいですか?

分類Dev

2D配列をループするときに見つかった特定の値を変更するにはどうすればよいですか?

分類Dev

ストリームを使用して2D int配列を2D String配列に変換するにはどうすればよいですか?

分類Dev

MATLABで2D配列の列をステンシルで作成して3D配列を作成するにはどうすればよいですか?

分類Dev

文字列を使用して2D配列を作成するにはどうすればよいですか?

分類Dev

配列値のグループを検索し、それらの値の配列キーを返すにはどうすればよいですか?

分類Dev

Pythonで2D配列のコピーを作成するにはどうすればよいですか?

分類Dev

PHPで2Dキー配列を作成するにはどうすればよいですか?

分類Dev

警告なしでこの配列をループするにはどうすればよいですか

分類Dev

ループを使用せずにJavaで2D配列行をスワップさせるにはどうすればよいですか?

分類Dev

ブール配列を作成してnumpyで配列の各行のインデックス値を検索するにはどうすればよいですか

分類Dev

2D配列を指すにはどうすればよいですか?

分類Dev

sklearnを使用して2D画像/配列でカーネル密度推定器を取得するにはどうすればよいですか?

分類Dev

rustを使用して、2D配列を2Dベクトルに変換するにはどうすればよいですか?

分類Dev

forループを使用して2つの配列を比較するにはどうすればよいですか?

分類Dev

この2D配列コードを短縮するにはどうすればよいですか?

分類Dev

2Dデータの配列を連結するにはどうすればよいですか

分類Dev

Rubyの既存の配列に2D配列を作成するにはどうすればよいですか?

分類Dev

2D配列の各行に配列を追加するにはどうすればよいですか?

Related 関連記事

  1. 1

    ダブルforループなしで2D配列にハッシュマップを入力するにはどうすればよいですか?

  2. 2

    forループを使用して既存の2D配列の最後に2D配列を数回追加するにはどうすればよいですか?

  3. 3

    2Dリストで単語を検索し、行番号、列番号、方向を含むタプルを作成するにはどうすればよいですか?

  4. 4

    2D連想配列をループなしでcsvに保存するにはどうすればよいですか?

  5. 5

    Pythonでデータ型を維持しながら、ファイルを2D配列に解析するにはどうすればよいですか?

  6. 6

    2D配列がforループでのみ一意であるかどうかを確認するにはどうすればよいですか?

  7. 7

    3列のnumpy配列(gpname、x、y)のグループを使用して2D散布図を作成するにはどうすればよいですか?

  8. 8

    2D配列の変数の行を介してコードをループするにはどうすればよいですか?

  9. 9

    Notepad ++検索がループしないようにするにはどうすればよいですか?

  10. 10

    辞書の辞書をループして2D配列を作成するにはどうすればよいですか?

  11. 11

    2D配列でバイナリ検索を適用するにはどうすればよいですか?

  12. 12

    2D配列をループするときに見つかった特定の値を変更するにはどうすればよいですか?

  13. 13

    ストリームを使用して2D int配列を2D String配列に変換するにはどうすればよいですか?

  14. 14

    MATLABで2D配列の列をステンシルで作成して3D配列を作成するにはどうすればよいですか?

  15. 15

    文字列を使用して2D配列を作成するにはどうすればよいですか?

  16. 16

    配列値のグループを検索し、それらの値の配列キーを返すにはどうすればよいですか?

  17. 17

    Pythonで2D配列のコピーを作成するにはどうすればよいですか?

  18. 18

    PHPで2Dキー配列を作成するにはどうすればよいですか?

  19. 19

    警告なしでこの配列をループするにはどうすればよいですか

  20. 20

    ループを使用せずにJavaで2D配列行をスワップさせるにはどうすればよいですか?

  21. 21

    ブール配列を作成してnumpyで配列の各行のインデックス値を検索するにはどうすればよいですか

  22. 22

    2D配列を指すにはどうすればよいですか?

  23. 23

    sklearnを使用して2D画像/配列でカーネル密度推定器を取得するにはどうすればよいですか?

  24. 24

    rustを使用して、2D配列を2Dベクトルに変換するにはどうすればよいですか?

  25. 25

    forループを使用して2つの配列を比較するにはどうすればよいですか?

  26. 26

    この2D配列コードを短縮するにはどうすればよいですか?

  27. 27

    2Dデータの配列を連結するにはどうすればよいですか

  28. 28

    Rubyの既存の配列に2D配列を作成するにはどうすればよいですか?

  29. 29

    2D配列の各行に配列を追加するにはどうすればよいですか?

ホットタグ

アーカイブ