Python中Collection的使用小技巧
Python 使用 技巧 collection
2023-06-13 09:15:43 时间
本文所述实例来自独立软件开发者AlexMarandon,在他的博客中曾介绍了数个关于PythonCollection的实用小技巧,在此与大家分享。供大家学习借鉴之用。具体如下:
1.判断一个list是否为空
传统的方式:
iflen(mylist): #Dosomethingwithmylist else: #Thelistisempty
由于一个空list本身等同于False,所以可以直接:
ifmylist: #Dosomethingwithmylist else: #Thelistisempty
2.遍历list的同时获取索引
传统的方式:
i=0 forelementinmylist: #Dosomethingwithiandelement i+=1
这样更简洁些:
fori,elementinenumerate(mylist): #Dosomethingwithiandelement pass
3.list排序
在包含某元素的列表中依据某个属性排序是一个很常见的操作。例如这里我们先创建一个包含person的list:
classPerson(object): def__init__(self,age): self.age=age persons=[Person(age)foragein(14,78,42)]
传统的方式是:
defget_sort_key(element): returnelement.age forelementinsorted(persons,key=get_sort_key): print"Age:",element.age
更加简洁、可读性更好的方法是使用Python标准库中的operator模块:
fromoperatorimportattrgetter forelementinsorted(persons,key=attrgetter("age")): print"Age:",element.age
attrgetter方法优先返回读取的属性值作为参数传递给sorted方法。operator模块还包括itemgetter和methodcaller方法,作用如其字面含义。
4.在Dictionary中元素分组
和上面类似,先创建Persons:
classPerson(object): def__init__(self,age): self.age=age persons=[Person(age)foragein(78,14,78,42,14)]
如果现在我们要按照年龄分组的话,一种方法是使用in操作符:
persons_by_age={} forpersoninpersons: age=person.age ifageinpersons_by_age: persons_by_age[age].append(person) else: persons_by_age[age]=[person] assertlen(persons_by_age[78])==2
相比较之下,使用collections模块中defaultdict方法的途径可读性更好:
fromcollectionsimportdefaultdict persons_by_age=defaultdict(list) forpersoninpersons: persons_by_age[person.age].append(person)
defaultdict将会利用接受的参数为每个不存在的key创建对应的值,这里我们传递的是list,所以它将为每个key创建一个list类型的值。
本文示例仅为程序框架,具体功能还需要读者根据自身应用环境加以完善。希望本文所述实例对大家学习Python能起到一定的帮助作用。
相关文章
- python十进制转换_Python 进制转换
- 【说站】如何使用python画皮卡丘?
- 【说站】Python不同模块下特殊变量的使用
- 【说站】python事件循环如何使用?
- 100个Python实战项目(十一)如何使用 Python 获取电话号码信息?
- Python win32api_python api文档
- Python 使用 pkgutil 访问包内资源
- Python 命令行模块使用技巧
- 使用 cProfile 和火焰图调优 Python 程序性能
- python-Python与MongoDB数据库-使用Python执行MongoDB查询(三)
- python-Python与PostgreSQL数据库-使用Python执行PostgreSQL查询(一)
- 5 种使用 Python 代码轻松实现数据可视化的方法详解编程语言
- Linux升级:升级Python到最新版本(linux升级python版本)
- python使用Python轻松操作Redis(redis-)
- 使用 Plotly 来简化 Python 中的数据可视化
- 如何在Linux中安装Python?(linux安装python)
- 在Linux系统中使用Python编程语言(linux中python)
- python定时检查启动某个exe程序适合检测exe是否挂了
- Python语言技巧之三元运算符使用介绍
- python使用ctypes模块调用windowsapi获取系统版本示例
- 零基础写python爬虫之使用Scrapy框架编写爬虫
- python中的reduce内建函数使用方法指南