Python列表推导式、字典推导式与集合推导式用法实例分析
本文实例讲述了Python列表推导式、字典推导式与集合推导式用法。分享给大家供大家参考,具体如下:
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。共有三种推导,在Python2和3中都有支持:
列表(list)推导式
字典(dict)推导式
集合(set)推导式
一、列表推导式
1、使用[]生成list
基本格式
variable=[out_exp_resforout_expininput_listifout_exp==2]
out_exp_res:列表生成元素表达式,可以是有返回值的函数。
forout_expininput_list:迭代input_list将out_exp传入out_exp_res表达式中。
ifout_exp==2:根据条件过滤哪些值可以。
例一:
multiples=[iforiinrange(30)ifi%3is0] print(multiples) #Output:[0,3,6,9,12,15,18,21,24,27]
例二:
defsquared(x): returnx*x multiples=[squared(i)foriinrange(30)ifi%3is0] printmultiples #Output:[0,9,36,81,144,225,324,441,576,729]
2、使用()生成generator
将俩表推导式的[]改成()即可得到生成器。
multiples=(iforiinrange(30)ifi%3is0) print(type(multiples)) #Output:
二、字典推导式
字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:
例子一:大小写key合并
mcase={'a':10,'b':34,'A':7,'Z':3} mcase_frequency={ k.lower():mcase.get(k.lower(),0)+mcase.get(k.upper(),0) forkinmcase.keys() ifk.lower()in['a','b'] } printmcase_frequency #Output:{'a':17,'b':34}
例子二:快速更换key和value
mcase={'a':10,'b':34} mcase_frequency={v:kfork,vinmcase.items()} printmcase_frequency #Output:{10:'a',34:'b'}
三、集合推导式
它们跟列表推导式也是类似的。唯一的区别在于它使用大括号{}。
例一:
squared={x**2forxin[1,1,2]} print(squared) #Output:set([1,4])
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python数组操作技巧总结》、《Python字符串操作技巧汇总》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python数据结构与算法教程》
希望本文所述对大家Python程序设计有所帮助。