将列表拆分为5个列表

时间:2016-01-31 10:07:04

标签: python list python-2.7 split

我正在尝试将列表拆分为5个列表。我在互联网上搜索,但我唯一能找到的是如何将列表拆分为n个列表,每个列表中的项目数量相同。
遗憾的是,这并没有解决我的问题。我想要做的是将列表拆分为5个包含不同数量项目的列表。

  • 让我们说这个清单有35个项目(这不总是35个,但确实如此 从来没有超过45)。
  • 我想把它分成:
    • 包含项目1-5
    • 的列表
    • 包含项目5-13
    • 的列表
    • 包含项目13-20
    • 的列表
    • 包含项目20-27
    • 的列表
    • 以及包含项目27-35
    • 的列表

我看到的所有内容都旨在将列表拆分为相同大小的子列表。所以我想知道这是否可能。

1 个答案:

答案 0 :(得分:1)

您可以使用基本列表切片实现此目的,如下所示:

In [1]: l = list(xrange(35))

In [2]: l[0:5], l[5:13], l[13:20], l[20:27], l[27:35]
Out[2]: 
([0, 1, 2, 3, 4],
 [5, 6, 7, 8, 9, 10, 11, 12],
 [13, 14, 15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24, 25, 26],
 [27, 28, 29, 30, 31, 32, 33, 34])

我无法在数字1, 5, 13, 20, 27, 35之间找到任何可重复的模式,但如果有数字,则可以轻松计算第n和第n + 1项,以动态获取切片而不是硬编码。< / p>

另请注意,对于Python中的列表,索引以0开头,并且当完成list[x:y]切片时,元素list[x], list[x+1], .. list[y-1]仅包含在切片中,{{1} }不是最终输出的一部分。