您的位置是:网站首页>Python编程Python编程

写给Python编程高手之 数据结构

少儿编程网2020-11-16 14:45:33Python编程 人已围观 来源:少儿编程 -用户投稿

简介python视频教程栏目介绍Python编程需要注意的关键点。如何在列表,字典,集合中根据条件筛选数据案例:如何在下列列表data中筛选出大于0的数data=[1,-1,2,3,4,7]复制代码使用filter函数,第一个参数为一个函数,也可以像如下代码传入一个lambda表达式。list(filt

版权所有:https://wWw.pxcodeS.com

python视频教程栏目介绍python编程需要注意的关键点。

cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

如何在列表,字典,集合中根据条件筛选数据

案例:如何在下列列表data中筛选出大于0的数cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

data = [1, -1, 2, 3, 4, 7]复制代码

使用filter函数,第一个参数为一个函数,也可以像如下代码传入一个lambda表达式。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

list(filter(lambda x: x >= 0, data))复制代码

另一种方案是像如下使用列表生成式,这种方案相对于上一种方案更加高效。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

print([x for x in data if x >= 0])复制代码

在字典这种数据结构中,也可以使用类似的字典生产式。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

from random import randint
d = { x: randint(60, 100) for x in range(1, 21)}
{k:v for k, v in d.items() if v >= 90}复制代码

如何为元组中的每个元素命名,提高程序可读性

方案:定义常量,使用常量索引元组中的元素,例如下列代码cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

stu = ('hao', 18, 'male', '1078244513@qq.com')
NAME = 0AGE = 1SEX = 2print(stu[SEX])复制代码

方案:使用collections包的namedtuple的函数,该函数会返回一个新"类"的定义,使用方式如下。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

from  collections import  namedtuple
Stu = namedtuple('Stu', ['name', 'age', 'sex', 'email'])# stu = Stu('hao', 18, 'male', '1078244513@qq.com')stu = Stu(name='hao', age=18, sex='male', email='1078244513@qq.com')

print(stu.email)复制代码

如何统计序列中元素的出现频率

问题: 统计下列数字列表中每个数字出现的次数cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

from random import randint
data = [randint(0, 20) for _ in range(30)]复制代码

方案:定义一个dict(字典),然后遍历数组。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

c = dict.fromkeys(data, 0)复制代码

上述代码会生成一个data中不同值为键,以0为值的一个字典对象。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

for x in data:
    c[x] += 1复制代码

方案:使用collections包中的Counter函数cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

c2 = Counter(data)复制代码

这种方案也可以方便的获取到出现次数**多的前几个。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

c2.most_common(3)复制代码

如何根据字典中的值的大小,对字典中的项排序

问题:对如下字典中的值进行排序cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

cj = {x: randint(60, 100) for x in 'xyzabc'}复制代码

方案:sorted函数中的第二个参数,可以传入一个函数对象,sorted会根据该函数的返回值进行排序。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

sorted(cj.items(), key=lambda item:item[1])复制代码

注:该函数返回一个新的字典对象cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

如何快速找到多个字典中的公共键(key)?

首先,介绍一下python中的采样函数sample,它位于random包中。该接收一个序列类型的参数和一个数字,返回一个随机从序列中随机采样获得一个序列。如下代码。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

from random import sample
sample('abcdefg', 3)复制代码

问题:如何获取下列三个集合的公共键。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

s1 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s2 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s3 = {x : randint(1, 4) for x in sample('abcdefg', andint(3, 6))}复制代码

可以使用集合的交集操作完成这项任务。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

s1.keys() & s2.keys() & s3.keys()复制代码

如何让字典保持有序?

collections包的OrderedDict类型,会保持进入字典的次序。cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

相关免费学习推荐:python视频教程cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

以上就是写给Python编程高手之 数据结构的详细内容,更多请关注少儿编程网其它相关文章!cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

来源:php中文网cWr少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

版权所有:https://wWw.pxcodeS.com

相关文章:

支持一下 ( )

写给Python编程高手之 数据结构

      匿名评论
    • 评论
    人参与,条评论
    写给Python编程高手之 数据结构

微信公众号

免费视频教程

先知道