5

以下を達成するための単一行の式はありますか:

input = ['this', 'is', 'a', 'list']
output = [('this', 'is'), ('a', 'list')]

私の最初のアイデアは、2 つのリストを作成し、それらを圧縮することでした。それには3行かかります。

リストには偶数の要素が含まれます。

4

3 に答える 3

9

これは非常に短いです:

zip(input, input[1:])[::2]
于 2013-02-15T20:23:01.393 に答える
7
In [4]: zip(*[iter(lst)]*2)
Out[4]: [('this', 'is'), ('a', 'list')]
于 2013-02-15T20:25:17.390 に答える
4
>>> input = ['this', 'is', 'a', 'list']

>>> [(input[i], input[i + 1]) for i in range(0, len(input), 2)]
[('this', 'is'), ('a', 'list')]
于 2013-02-15T20:21:59.130 に答える