有一行表達實現以下目標:轉平列表分爲二元組
input = ['this', 'is', 'a', 'list']
output = [('this', 'is'), ('a', 'list')]
我最初的想法是創建兩個列表,然後將拉鍊起來。這將需要三行。
該列表將具有偶數個元素。
有一行表達實現以下目標:轉平列表分爲二元組
input = ['this', 'is', 'a', 'list']
output = [('this', 'is'), ('a', 'list')]
我最初的想法是創建兩個列表,然後將拉鍊起來。這將需要三行。
該列表將具有偶數個元素。
>>> input = ['this', 'is', 'a', 'list']
>>> [(input[i], input[i + 1]) for i in range(0, len(input), 2)]
[('this', 'is'), ('a', 'list')]
In [4]: zip(*[iter(lst)]*2)
Out[4]: [('this', 'is'), ('a', 'list')]
這......受到啓發。 – 2013-07-30 11:26:49
這樣做是否工作,因爲您將zip壓縮到同一個迭代器兩次,因此從「第一個列表」獲取第一個項目後,「第二個列表」中的第一個項目實際上是原始列表中的第二個項目? – flutefreak7 2015-05-07 20:00:30
而如果您的列表有奇數個元素? – 2013-02-15 20:20:09
你現在可以忽略它。 – David542 2013-02-15 20:20:19
你原來的計劃很好。我敢肯定,你可以把它變成一條很醜的線。 – 2013-02-15 20:21:56