您的位置: 网站首页> IT爱问> 当前文章

python面试:列表推导式、集合推导式、字典推导式差别

老董2020-07-31185围观,122赞

  推导式(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。字典、列表、集合推导式可以轻松创建字典和列表和集合的语法结构。

  1、列表(list)推导式

  列表解析式是将一个列表(实际上适用于任何可迭代对象)转换成另一个列表的工具。并且在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。if语句可以省略。

  基本语法:new_list = [expression(i) for i in old_list if condition(i)]

# -*- coding: utf-8 -*-

lis = [str(i) + 'a' for i in range(30) if i % 2 is 0]
print(lis)


['0a', '2a', '4a', '6a', '8a', '10a', '12a', '14a', '16a', '18a', '20a', '22a', '24a', '26a', '28a']


  2、字典(dict)推导式

  字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。if语句可以省略。

  基本语法:{表达式 for 迭代变量 in 可迭代对象 if 条件表达式}

# -*- coding: utf-8 -*-

# 更换key和value
kv = {'a': 10, 'b': 20}
new_kv = {v:k for k, v in kv.items()}
print(new_kv)

{10: 'a', 20: 'b'}

  3、集合(set)推导式

  集合推导式和列表推导式极其相似,用法也完全一样,唯一的区别就在于将代表列表的符号[ ]替换成代表几个的符号{ }。if语句可以省略。

  基本语法:{ 表达式 for 迭代变量 in 可迭代对象 if 条件表达式 }

# -*- coding: utf-8 -*-

new_date = {x**2 for x in [1,2,3,4] if x > 2}
print(new_date) # 集合是无序的

{16,9}

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    python面试:列表推导式、集合推导式、字典推导式差别文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200