python高级编程目录_python高级编程(列表,元组,集合)

任务描述:如何在列表、字典、集合中根据条件筛选数据

列表:

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

filter(function, iterable)

function -- 判断函数。

iterable -- 可迭代对象。

from random import randint

data = [randint(-10, 10) for _ in range(10)] #利用列表生成式构造一个列表

print(data)

data1 = filter(lambda x: x >=0, data) #利用filter函数进行条件筛选

print(list(data1)) #输出筛选后的结果

注:

filter()函数在python2 中直接打印map,filter函数会直接输出结果,返回的是过滤后的列表。

而python3中返回到是一个filter类,filter类实现了__iter__和__next__方法,

可以看成是一个迭代器,有惰性运算的特性, 相对python2提升了性能, 可以节约内存.输出前需要

使用list() 进行显示转换

法二:

from random import randint

data = [randint(-10, 10) for _ in range(10)]

data2 = [x for x in data if x >=0]

print(data2)

链表推导式提供了一个创建链表的简单途径,无需使用 map(), filter() 以及 lambda。

返回链表的定义通常要比创建这些链表更清晰。每一个链表推导式包括在一个for语句之后的表达式,

零或多个for或多个if语句。返回值是由for或if子句之后的表达式得到的元素组成的链表。

如果想要得到一个元组,必须要加上括号。

990201014a82?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

字典

任务描述:构建一个字典用于存储学生与成绩,学生编号1-20 成绩为60-100之间的随机值,

然后通过字典解析提取出值大于90的学生的成绩和学号

from random import randint

d = {x: randint(60, 100) for x in range(1,21)}

print(d)

print({k for k in d if k>10})

print({v for v in d.values() if v>90})

print({k for k in d.keys() if k>10})

k = {k:v for k, v in d.items() if v > 90}

print(k)

990201014a82?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

集合

任务描述:在集合中找出可以被3整除的数!

data = [randint(-10, 10) for _ in range(10)]

s = set(data)

print(s)

s1 = {x for x in s if x % 3 == 0}

print(s1)

990201014a82?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值