【python】+list列表操作(全)反转/排序/去重/截取

1、反转list
2、list排序
3、list去重
4、list截取

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
@Time    :2022/7/27 13:27
@Author  :
@File    :testa.py
@Version :1.0
@Function:
"""if __name__ == '__main__':
    """
    1 反转list
    核心:list类的reverse方法
    """
    listReverse = [3, 5, 2, 7, 1, 4, 9, 3]
    listReverse.reverse()  # [3, 9, 4, 1, 7, 2, 5, 3]
    print(listReverse)

    """
    2 list排序
    核心:list类的sort方法
    """
    # 2.1 正序(从小到大)
    list1 = [3, 5, 2, 7, 1, 4, 9, 3]
    list1.sort()
    print(list1)  # [1, 2, 3, 3, 4, 5, 7, 9]
    # 2.2 反序(从大到小)sort方法中加入reverse反转即可
    list2 = [3, 5, 2, 7, 1, 4, 9, 3]
    list2.sort(reverse=True)
    print(list2)  # [9, 7, 5, 4, 3, 3, 2, 1]
    # 2.3 list中的元素是对象 根据对象的某个属性正序排序(若需要反序 则在sort方法中加入reverse=True即可)
    list3 = [{'a': 3, 'b': 'fd'}, {'a': 1, 'b': 'gfh'}, {'a': 8, 'b': 'jyt'}, {'a': 5, 'b': 'rew'}]
    list3.sort(key=lambda param: param['a'])
    print(list3)  # [{'a': 1, 'b': 'gfh'}, {'a': 3, 'b': 'fd'}, {'a': 5, 'b': 'rew'}, {'a': 8, 'b': 'jyt'}]

    """
    3 list去重
    核心:set类
    """
    # 3.1 去除list中的重复元素 并保持去重后的顺序不变
    listRepetition = [3, 5, 2, 7, 9, 4, 9, 3]
    newListRepetition = list(set(listRepetition))  # set返回的是 去重后按升序排列的数据
    newListRepetition.sort(key=listRepetition.index)  # 这一步表示 新的list按照原来list的顺序进行排序 以此实现去重后的顺序不变
    print(newListRepetition)  # [3, 5, 2, 7, 9, 4]

    # 3.2 list中的元素是对象 根据对象的某个属性来对list去重
    def repetition(data: list, key: str):
        '''
        根据list元素中的某个属性 对list去重
        @param data: list
        @param key: list元素中的某个属性
        @return:
        '''
        newData = []
        keyList = []
        for d in data:
            if d[key] not in keyList:
                newData.append(d)
                keyList.append(d[key])
        return newData

    listRepetition2 = [{'a': 3, 'b': 'fd'}, {'a': 1, 'b': 'gfh'}, {'a': 3, 'b': 'jyt'}, {'a': 5, 'b': 'rew'}]
    newList = repetition(listRepetition2, 'a')
    print(newList)  # [{'a': 3, 'b': 'fd'}, {'a': 1, 'b': 'gfh'}, {'a': 5, 'b': 'rew'}]

    """
    4 list截取
    核心:[] 取值时 遵循左闭右开 即[2:5] 这里的5是不取的 只取到4
    """
    listA = ["a1", "a2", "a3", "a4", "a5"]
    print(listA[2])  # a3
    print(listA[-2])  # a4
    print(listA[1:3])  # ['a2', 'a3']
    print(listA[:2])  # ['a1', 'a2']
    print(listA[-3:])  # ["a3", "a4", "a5"]

 

posted @ 2019-10-20 22:46  淡怀  阅读(1196)  评论(0编辑  收藏  举报