列表、字典、集合的解析

列表解析
生成一个随机列表,筛选出正数
>>> data = [randint(-10,10) for x in range(0,10)]
>>> data
[-8, -1, 9, -3, -3, -4, 7, 8, -3, 1]
>>> [x for x in data if x>0]
[9, 7, 8, 1]
 

 
字典解析
假设一个班级20人,随机生成这个班级的成绩字典(百分制)
d = {x: randint(0,100) for x in range(1,21)}
>>> d
{1: 43, 2: 4, 3: 30, 4: 1, 5: 71, 6: 82, 7: 29, 8: 59, 9: 76, 10: 24, 11: 84, 12: 1, 13: 90, 14: 75, 15: 21, 16: 85, 17: 32, 18: 62, 19: 95, 20: 25}
 
现将分数大于等于85的元素提取出来
>>> {k:v for k,v in d.iteritems() if v>=85}
{16: 85, 19: 95, 13: 90}
 

 
集合解析
生成一个随机列表,再转化为集合,筛选出能被3整除的数
>>> data = [randint(-10,10) for x in range(0,10)]
>>> data
[-8, -1, 9, -3, -3, -4, 7, 8, -3, 1]
>>> s = set(data)
>>> s
set([1, 7, 8, 9, -8, -4, -3, -1])
>>> {x for x in s if x%3==0}
set([9, -3])
posted @ 2020-09-23 12:37  Edward_han  阅读(81)  评论(0编辑  收藏  举报