python

当前位置:首页 > IT面试题 > 当前文章

IT面试题

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

2020-07-31 133赞 老董笔记
每篇文章努力于解决一个问题!更多精品可移步文章底部。

  推导式(又称解析式),是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面试:列表推导式、集合推导式、字典推导式差别文章写得不错,值得赞赏