or1ko's diary

日々を書きます

2つリストのzip関数

PowerShellHaskellのData.List.zip関数みたいなものがないかなと思っていたら、下記のページで見つけた。

function zip2($a, $b) {
0 .. ($a.count - 1) | % {, ($a[$_], $b[$_])}
}

PowerShell – Build a Zip Function, zipping two lists together

  • こんな感じで使う。
> zip2 $(1..5) $(5..15) | % { "$($_[0]) $($_[1])" }
1 5
2 6
3 7
4 8
5 9
  • pasteコマンドのように二つのファイル(a.txtとb.txt)を結合
> more .\a.txt
aaa
bbb
ccc
ddd
eee

> more .\b.txt
EEE
DDD
CCC
BBB
AAA

> zip2 $(get-content .\a.txt) $(Get-Content .\b.txt) | % { "$($_[0]) $($_[1])" }
aaa EEE
bbb DDD
ccc CCC
ddd BBB
eee AAA