python|列表推导式

python有一个列表推导功能,可以在一行代码中实现强大的功能。

比如这段代码,求数字对应的字母,用for循环写:

CLASSIFICATION_LIST = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K',

                          12: 'N', 13: 'O', 14: 'P', 15: 'Q', 16: 'R', 17: 'S', 18: 'T', 19: 'U', 20: 'V', 21: 'X',

                          22: 'Z'}

select_list = [1,3,5,9,15,17,20,22]

c_list = []

for s in select_list:

    c_list.append(CLASSIFICATION_LIST[s])

用列表推导式:

c_list = [CLASSIFICATION_LIST[s] for s in select_list]

输出结果:A,C,E,I,Q,S,V,Z

简单吧!!

语法结构如下:

new_list = [expression  for member in iterable if conditional]

(1)expression:表达式,对member的操作

(2)member:列表或可迭代对象中的对象或值

(3)iterrable:列表、集合。。。可一次返回其member的对象

(4)条件表达式,过滤列表不需要的值

一句话:从可迭代对象中取一个(满足条件的)元素,把它传入表达式计算后,放在列表里。

同理,字典与集合也有相应的字典推导式和集合推导式:

new_dict = {x:x**2  for x in a if x*2==0}

new_set = {x**3  forx in a if x%3==0}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容