Consider the following case:

```
list1 = {q, r, s};
list2 = {{a, 2}, {b, 3}, {c, 1, f}};
Inner[{#1, #2} &, list1, list2, List]
(* Out[] := {{q, {a, 2}}, {r, {b, 3}}, {s, {c, 1, f}}} *)

```

However, if the last element of `list2` has `Length` 2:

```
list1 = {q, r, s};
list2 = {{a, 2}, {b, 3}, {c, 1}};
Inner[{#1, #2} &, list1, list2, List]
(* Out[] := {{{q, a}, {r, b}, {s, c}}, {{q, 2}, {r, 3}, {s, 1}}} *)

```

I would have expected (and wanted) a result like:

```
(* Out[] := {{q, {a, 2}}, {r, {b, 3}}, {s, {c, 1}}} *)

```

So,

1. Why does this `Inner` operation change if the `list2` entries are all of the same length?
2. How can I generate an output like the expected result?

---

**Edit** I came up with a potential answer to question 2:

```
Partition[Riffle[list1, list2], 2]
Out[] := {{q, {a, 2}}, {r, {b, 3}}, {s, {c, 1}}}

```

but this seems somehow too-complicated.