python在可迭代对象(列表、字典、集合)中根据条件过滤数据

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

在可迭代对象中根据条件过滤数据,最常用的方法就是使用循环判断、列表推导式、高阶函数。

如何过滤列表中的负数

  1. 使用循环判断

    from random import randint
    
    a = [randint(-10, 10) for _ in range(10)]
    
    print(a)
    new_list = []
    for i in a:
        if i >=0:
            new_list.append(i)
    print(new_list)
    
  2. 使用高阶函数filter(func, iterable),func一次作用于iterable元素,根据bool为真保存数据

    from random import randint
    
    a = [randint(-10, 10) for _ in range(10)]
    
    print(a)
    b = list(filter(lambda x: x >= 0, a))
    print(b)
    
  3. 使用列表推导式

    from random import randint
    
    a = [randint(-10, 10) for _ in range(10)]
    
    print(a)
    b = [x for x in a if x >= 0]
    print(b)
    

    效率依次递增,推导式效率最高

筛选出学生成绩大于90的数据

使用字典推导式

from random import randint

grade = {x: randint(60, 100) for x in range(1, 21)}
b = {k: v for k, v in grade.items() if v >= 90}
print(b)

过滤集合中能被3整除的数

from random import randint

a = {randint(1, 50) for _ in range(20)}
b = {i for i in a if i % 3 != 0}
print(b)

你可能感兴趣的:(python在可迭代对象(列表、字典、集合)中根据条件过滤数据)