python开发技巧---列表、字典、集合值的过滤

时间:2023-03-09 06:41:52
python开发技巧---列表、字典、集合值的过滤

主要学习列表,字典,集合表达式的应用:

列表的解析式:
生成一个随机列表:
In [4]: datalist = [randint(-10,10) for _ in range(10)] In [5]: print(datalist)
[-5, 7, -9, 10, 3, 0, 5, -8, 2, 10] 过滤大于0的值
In [13]: list(filter(lambda x: x >= 0,datalist))
Out[13]: [7, 10, 3, 0, 5, 2, 10] 字典的解析式:
生产一个随机成绩字典:
In [22]: d = {x:randint(50,100) for x in range(1,30)} In [23]: print(d)
{1: 62, 2: 57, 3: 70, 4: 85, 5: 55, 6: 70, 7: 82, 8: 90, 9: 55, 10: 85, 11: 94, 12: 75, 13: 56, 14: 89, 15: 92, 16: 97, 17: 75, 18: 73, 19: 55, 20: 54, 21: 71, 22: 60, 23: 74, 24: 83, 25: 70, 26: 78, 27: 82, 28: 74, 29: 99} 过滤成绩大于90的:
In [28]: d1 = {k:v for k,v in d.items() if v > 90} In [29]: d1
Out[29]: {11: 94, 15: 92, 16: 97, 29: 99} 结合的解析式:
In [30]: s = set(datalist) In [31]: s
Out[31]: {-9, -8, -5, 0, 2, 3, 5, 7, 10} In [32]: s1 = {x for x in s if x %3 == 0} In [33]: s1
Out[33]: {-9, 0, 3}