python 內建函式的應用-資料分組
阿新 • • 發佈:2022-03-24
對容器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進行分組。