【集合】列表生成式以及过滤器的使用

时间:2019-10-10
本文章向大家介绍【集合】列表生成式以及过滤器的使用,主要包括【集合】列表生成式以及过滤器的使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
from random import randint

'''
    列表生成式、过滤器的使用
'''

# 1.过滤列表中的负数
# 法1
data = [randint(-10, 10) for i in range(10)]
print(data)
f_list = filter(lambda x: x >= 0, data)
print(list(f_list))

# 法2
print([i for i in data if i >= 0])

print('-' * 50)
# 2.筛选成绩大于80分的
d = {str(i): randint(1, 100) for i in range(0, 50)}
print(d)
# 法1
f_dict = filter(lambda x: x > 80, d.values())
print(list(f_dict))

# 法2
print([v for v in d.values() if v > 80])

print('-' * 50)
# 3.筛选出集合中能被3整除的数
l_set = set([randint(1, 100) for x in range(100)])
# 法1
print(list(filter(lambda i: i % 3 == 0, l_set)))

# 法2
print([i for i in l_set if i % 3 == 0])

运行结果

[2, -8, 9, -2, -5, 9, 1, 5, -3, 0]
[2, 9, 9, 1, 5, 0]
[2, 9, 9, 1, 5, 0]
--------------------------------------------------
{'0': 9, '1': 4, '2': 34, '3': 31, '4': 34, '5': 85, '6': 88, '7': 41, '8': 75, '9': 23, '10': 95, '11': 92, '12': 24, '13': 21, '14': 32, '15': 32, '16': 81, '17': 90, '18': 70, '19': 1, '20': 85, '21': 69, '22': 33, '23': 93, '24': 60, '25': 50, '26': 17, '27': 4, '28': 7, '29': 89, '30': 75, '31': 66, '32': 5, '33': 17, '34': 96, '35': 33, '36': 37, '37': 48, '38': 3, '39': 34, '40': 14, '41': 60, '42': 56, '43': 39, '44': 1, '45': 72, '46': 60, '47': 34, '48': 61, '49': 91}
[85, 88, 95, 92, 81, 90, 85, 93, 89, 96, 91]
[85, 88, 95, 92, 81, 90, 85, 93, 89, 96, 91]
--------------------------------------------------
[3, 12, 15, 18, 21, 24, 27, 30, 36, 42, 48, 51, 54, 57, 60, 72, 75, 78, 84, 87, 90, 93, 96, 99]
[3, 12, 15, 18, 21, 24, 27, 30, 36, 42, 48, 51, 54, 57, 60, 72, 75, 78, 84, 87, 90, 93, 96, 99]

原文地址:https://www.cnblogs.com/biexei/p/11651116.html