zoukankan      html  css  js  c++  java
  • python 学习笔记(一):在列表、字典、集合中根据条件筛选数据

    一、在列表中筛选数据

    在列表中筛选出大于等于零的数据,一般通用的用法代码如下:

    1 data = [3, -9, 0, 1, -6, 3, -2, 8, -6] #要筛选的原始数据列表
    2 result = [] #存放筛选结果的列表
    3 for x in data: #依次迭代循环每个元素
    4     if x >= 0: #判断是否符合筛选条件
    5         result.append(x) #大于等于零就将该元素加入结果列表中
    6 print(result) #打印输出

    在python 中还有更加简洁高效的方法:

    1、filter函数: 

    1 from random import randint
    2 #生成一个包含10个随机数的列表,每个元素的取值范围在-10到10之间
    3 data = [randint(-10, 10) for _ in range(10)] 
    4 #filter函数的第一个参数是过虑函数,通常使用lambda匿名函数,第二个参数是要过滤的列表
    5 result = filter(lambda x: x >=0, data) 
    6 print(result)

     2、列表解析:

    ...
    result = [x for x in data if x >= 0]
    ...

     

     二、在字典中筛选数据

    在字典中根据值来筛选数据,下面的例题是筛选出分数大于等于90分同学的代码:

    1 from random import randint
    2 #同学姓名列表,用字母简化代表同学姓名
    3 students = ['x', 'y', 'z', 'a', 'b', 'c', 'g', 'k', 'j']
    4 #迭代循环姓名列表,随机生成每个同学的分数
    5 data = {s: randint(60, 100) for s in students}
    6 #根据分数来筛选过滤字典中的每个元素
    7 result = {k:v for k, v in data.items() if v >= 90}
    8 print(result)

     三、在集合中筛选数据

    在集合中筛选数据的操作和字典非常相似,只是略去键值之间的冒号。下面是在集合中筛选出能整除3的元素的代码:

    1 from random import randint
    2 #生成包含20个随机数的列表,元素的取值范围为1到100之间
    3 data = [randint(1, 100) for _ in range(20)]
    4 #将列表转换为集合,去除重复元素
    5 my_set = set(data)
    6 #筛选出能整除3的元素
    7 result = [x for x in my_set if x%3 == 0]
    8 print(result)
  • 相关阅读:
    【引用】关于closeonexec标志
    CentOS解决编码问题
    /etc/init.d/functions (转)
    centos 安装 中文 支持 语言包(转)
    vsftpd 530 错误
    __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程)(转)
    C语言中可变参数的用法 va_start va_end(转)
    守护进程 setsid(转)
    /dev/null 重定向 ./sh >/dev/null 2>&1
    C# 子类调用父类构造函数
  • 原文地址:https://www.cnblogs.com/walo/p/11247656.html
Copyright © 2011-2022 走看看