Python中一些高效的数据操作

枫铃3年前 (2021-09-30)Python247

1.列表统计

chars = ["a", "b", "a", "c", "a", "d"]

使用count获取单个字符出现次数

chars.count("a")

使用Counter的most_commom获取 出现次数最多的前几位

from collections import Counter
print(Counter(chars).most_common(2)

2.字典键值的集合操作

字典的keys()支持 并集| 交集 & 差集 - 等集合操作

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dict_a = {"a": 1, "b": 2, "c": 3 }
dict_b = {"a": 1, "c":2, "d": 4}

dict_a.keys() & dict_b.keys()

当字典的values都是字符串(无嵌套)时,字典的items()也支持集合操作
断言字典a包含字典b

assertFalse(dict_b.items() - dict_b.items())

3.列表嵌套字典操作

fruits = [{"name": "apple", "price": 4},
{"name": "orange", "price": 5}, {"name": "pear", "price":6} ,{"name": "apple", "price": 5}]

排序

sorted(fruits, key=lambda x: x["price"])

可以使用itemgetter代替lambda表达式

from operator import itemgetter
sorted(fruits, itemgetter("price"))

最小

mim(fruits, key=lambda x: x["price"])

最大

max(fruits, key=lambda x: x["price"])

使用堆获取最大/最小的前几个

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import heapq
heapq.nlargest(2, fruits, key=lambda x: x["price"])
heapq.nsmallest(2, fruits, key=lambda x: x["price"]

分组groupby

from itertools import groupby
groups = groupby(fruits, key=lambda x:x["name"])

for name, fruits in groups:
    print(name, len(list(fruits)))

相关文章

python新手遇到的5大坑

对于Python新手来说...

Python命令行参数解析模块getopt使用实例

这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式、短选项参数实例、长选项参数实例等内容,需要的朋友可以参考下 格式...

Python enumerate函数

enumerate()是...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。