Zip two lists into pairs

Zip two lists into pairs in one step. Paste both lists into the input panel, separated by "# List A" and "# List B" header lines, and ListShift pairs row 1 of the first list with row 1 of the second, row 2 with row 2, and so on. Pick any separator for the joined output.

Input
Ready
Output
Live

Pair two lists row by row

Zip two lists into pairs when you have two parallel columns of data that belong together - names and emails, SKUs and prices, tickets and owners. The tool matches each row from the first list with the row at the same index in the second.

To keep the two lists separate in one textarea, paste them with a header line for each block. Any line starting with "#" splits a new block, so "# List A" / "# List B" is just a convention, not a magic keyword - use whatever labels you like.

If one list is longer than the other, the extra rows are still emitted with an empty pair, so no data is lost. Pick the output separator you want between each pair: tab (default, pastes into Excel cells cleanly), comma, pipe, or dash.

Everything runs in your browser via JavaScript. Your lists never leave the tab, there is no sign-up, and nothing is sent to our servers.

How to use zip two lists into pairs

  1. 1Paste your first list into the input panel, preceded by a header line like "# List A".
  2. 2Leave a blank line, then add a second header line like "# List B" and paste the second list below it.
  3. 3Pick a Separator - Tab is the default (good for Excel paste), or choose comma, pipe, or dash for readable output.
  4. 4The output panel updates live with each pair on its own line, using the separator you chose.
  5. 5Copy the result or hit Download to save the pairs as a plain text file.

Keyboard shortcuts

Drive ListShift without touching the mouse.

Shortcut Action
Ctrl ZUndo last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor
EscExit fullscreen
Ctrl KOpen the command palette to jump to any tool
Ctrl SSave current pipeline draft Plus
Ctrl PRun a saved pipeline Plus

What zip two lists lets you do

Five jobs that come up when you have two parallel columns of data.

Pair names with emails from two separate exports

One CSV export gives you names in order, another gives you emails in the same order. Paste both as "# List A" and "# List B" and the output gives you "name<TAB>email" per row, ready to paste into a CRM or spreadsheet.

Match product SKUs with prices

Pull the SKU column from one report, the price column from another, and zip them into "SKU | price" pairs for a pick-list or a quick price sanity check. Pipe separator is readable at a glance; tab is still the default for spreadsheet paste.

Zip Jira ticket IDs with owners

Two parallel columns from a Jira export become clean "TICKET-123<TAB>alice" pairs for a standup note. No VLOOKUP, no spreadsheet gymnastics - paste, pick a separator, copy the output.

Generate quiz cards from questions + answers

List A = questions, List B = answers, and the output is one "Q - A" line per card. Pick the dash separator for readability; rename to .csv for import into flashcard tools like Anki or Quizlet.

Build a key-value list for a config file or prompt

Zip a list of keys with a list of values, separator = ": ", and you get "key: value" per line - valid for YAML, ini-style configs, or a structured LLM prompt where each line maps one concept to its definition.

Worked example

Two lists pasted with "# List A" / "# List B" headers, zipped into tab-separated pairs.

Input
# List A
Alice
Bob
Carol

# List B
New York
Los Angeles
Chicago
Output
Alice	New York
Bob	Los Angeles
Carol	Chicago

Settings reference

Understand how each option affects the output with the example above.

Setting What it does Effect on the sample
Separator: Tab (default) Joins each pair with a tab character Excel + Google Sheets paste splits into two columns automatically
Separator: Comma Joins with ", " Gives "Alice, New York" per line (safe when cells contain no commas)
Separator: Pipe Joins with " | " Gives "Alice | New York" per line - readable at a glance
Separator: Dash Joins with " - " Gives "Alice - New York" per line - good for quiz-card style output

FAQ

How do I separate the two lists in the input?
Put a header line starting with "#" between them - the convention is "# List A" and "# List B" but any text after the "#" is accepted. Any "#"-prefixed line splits a new block.
Can I zip lists of different lengths?
Yes. The tool pairs up to the length of the longer list, leaving the shorter list's extra slots as empty strings. No pairs are silently dropped.
What separator does the output use?
Tab by default so the output pastes cleanly into Excel or Google Sheets as two columns. Switch to comma, pipe, or dash from the Separator dropdown for a more human-readable line format.
Can I zip three or more lists?
Not with this tool - it only zips the first two "# List" blocks. For three-way comparison use Three-way Diff. For merging many lists into one, use Merge Lists.
Is my data uploaded anywhere?
No. The pairing happens locally in your browser via JavaScript. Nothing is sent to a server and nothing is stored after you close the tab.