python中的拆分列表

时间:2015-07-03 18:26:19

标签: python

我有一个列表我想拆分或分成多个子列表。如果它按顺序排列会很好,但它并不是必须的。如果可能的话,我想把它分成3-5个列表。目前我使用以下代码,但我想知道是否有更好的方法。

@Transactional

该列表将是随机长度。有时它可以是另外两次,它可以是103个元素(w /余数)。我知道还有其他帖子,但我还没有找到一个好的答案。希望这次改变一下......任何提示都会非常感激!

2 个答案:

答案 0 :(得分:1)

不确定对你来说什么意味着更好的方式,但仍然是我的镜头:

import random

def split(data_list):
    new_list = []

    while len(data_list) != 0:
        add = random.randint(3,5)
        separed_list = []

        for i in xrange(add):
            if len(data_list):
                separed_list.append(data_list.pop(0))
        new_list.append(separed_list)

    print(new_list)

split(['a', 'b', 'c', 'd', 'e', 'f', 'j']);

答案 1 :(得分:0)

这是一种方式:

import math

def create_sublist(data_list, num_sublists):
    sublist_length = math.ceil(len(data_list)/num_sublists)
    list_of_sublists = []
    while data_list != []:
        sublist = []
        for i in range(min(len(data_list), sublist_length)):
            sublist.append(data_list.pop(0))
        list_of_sublists.append(sublist)
    print(list_of_sublists)

create_sublist(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'], 3)
>>> [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i', 'j']]