1. 程式人生 > 其它 >python 內建函式的應用-資料分組

python 內建函式的應用-資料分組

對容器list進行分組:

使用場景:

  • 容器list資料較多,導致程式碼執行時,記憶體溢位;
  • 需要對資料進行分組;

程式碼例項:

def list_of_groups(list_info, per_len):
    """
    group the list
    :param list_info:
    :param per_len:
    :return: 
    """
    list_of_group = zip(*(iter(list_info), ) * per_len )
    end_list = [list(i) for i in list_of_group]
    count = len(list_info) % per_len
    end_list.append(list_info[-count:]) if count != 0 else end_list
    
    return end_list

if __name__ == '__main__':
    print(list_of_groups([1,2,3,4], 2))

結果:

程式碼分析:
核心程式碼: zip(*(iter(list_info), ) * per_len ) 內建函式iter() 將容器list變為一個迭代器物件,減少記憶體,

同時,根據需要將list容器物件複製per_len 個(雖然複製成了per_len個, 但是在python中是同一個物件),在使用zip()

函式時,物件迭代per_len次是同一個物件,從而將資料按長度per_len進行分組。