python-將一個列表切分成多個小列表


list是python中較為常見的數據類型,它是一個可迭代對象,迭代是什么?簡單的可以理解成:一個可以被for循環遍歷的對象

今天拿到一個類似這樣的list

list_info = ['name zhangsan','age 10','sex man','name lisi','age 11','sex women']

 

其實說白了就是兩個人的個人信息,字段都一樣,但是在一個共同的列表中,沒辦法區分,首先需要將這個大列表分成2個(這里人數是不一定的,分列表是按照每個列表固定的長度)的小列表

def list_of_groups(list_info, per_list_len):
    '''
    :param list_info:   列表
    :param per_list_len:  每個小列表的長度
    :return:
    '''
    list_of_group = zip(*(iter(list_info),) *per_list_len) 
    end_list = [list(i) for i in list_of_group] # i is a tuple
    count = len(list_info) % per_list_len
    end_list.append(list_info[-count:]) if count !=0 else end_list
    return end_list

if __name__ == '__main__':
    list_info = ['name zhangsan', 'age 10', 'sex man', 'name lisi', 'age 11', 'sex women']
    ret = list_of_groups(list_info,3)
    print(ret)

 

以上便是這個函數執行的結果,成功將一個大的無規則的列表按照一定規則做了處理,還可以將上述小列表轉換成字典,更加直觀,通過鍵值對的方式獲取數據

    list_dict = []
    for item in ret:
        data = {}
        data['name'] = item[0].split(' ')[1]
        data['age'] = item[1].split(' ')[1]
        data['sex'] = item[2].split(' ')[1]
        list_dict.append(data)
    print(list_dict)

 

 

兩種更加可視化的方法,任君選擇吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM