【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"]
如果忍耐算是坚强 我选择抵抗 如果妥协算是努力 我选择争取
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义