python-推导式(列表、字典、集合)

目录

一.列表推导式

1.基本含义

2.基本格式

3.执行流程

4.实例

(1)将lst中每一个元素进行平方后放入到一个新列表中

(2)求出lst 中是奇数的值,然后放入到一个新列表中

(3)求列表中所有大于2的偶数进行平方计算

(4)将一个嵌套列表转换成一个一维列表。

(5)现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]要求取出1/4/7  和 1/5/9 元素

二.字典推导式

1.含义

2.格式

3.实例

(1)将字典中的key和value进行兑换(偷龙转凤)

三.集合推导式(主要去重)


一.列表推导式

1.基本含义

列表推导式(list comprehension)是利用其它列表创建新列表的一种方式,工作原理类似for循环,即可对得到的元素进行转换或者筛选。

2.基本格式

列表推导式的基本格式有两种:

变量名=[表达式 for 变量 in 列表]  

变量名= [表达式 for 变量 in 列表 if 条件]

3.执行流程

遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算。

或者遍历列表中的内容给变量,然后进行判断,符合的值在给表达式。

4.实例

(1)将lst中每一个元素进行平方后放入到一个新列表中

我们看到这种题目第一反应是用for循环遍历:

普通方法:

lst = [1,2,3,4,5]
new = []
for i in lst:
    num = i*i
    new.append(num)
print(new)

确实非常清楚,但是我们如果使用推导式则更加简单。

推导式:外层括号表示是在列表里。for循环得到的量放在for前面即可!

lst = [1,2,3,4,5]
aa = [i*i for i in lst]
print(aa)

结果如下:

(2)求出lst 中是奇数的值,然后放入到一个新列表中

a = [1,2,3,4,5,6]

普通方法:

a = [1,2,3,4,5,6]
b = []
for i in a:
    if i % 2==1:
        b.append(i)
print(b)

推导式:

a = [1,2,3,4,5,6]
b = [i for i in a if i %2==1]
print(b)

 

结果如下:

(3)求列表中所有大于2的偶数进行平方计算

a = [1,2,3,4,5,6]

分析一下:1.所有大于2的偶数   2.平方计算

普通方法:

a = [1,2,3,4,5,6]
b = []
for i in a:
    if i >2 :
        if i %2 ==0:           
            b.append(i*i)
print(b)

推导式:

b = [i*i for i in a if i >2 if i %2==1]
print(b)

结果如下:

(4)将一个嵌套列表转换成一个一维列表。

 

a = [[1,2],[2,3],[3,4]]

变成[1,2,2,3,3,4]

普通方法:

a = [[1,2],[2,3],[3,4]]
b = []
for list in a:   #遍历大列表的每个元素
    for i in list:#遍历小列表中的每个元素
        b.append(i)
print(b)

我们分析下这个列表,大列表中有许多小列表,我们可以采用遍历大列表后遍历每个小列表得到每个元素

推导式:


a = [[1,2],[2,3],[3,4]]

b = [i for lst in a for i in lst]
print(b)

结果如下:

(5)现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]要求取出1/4/7  和 1/5/9 元素

这次我们不用普通方法了,直接用推导式。

我们先分析1,4,7      他们都在大列表中的小列表的第一个位置(索引0)

a = [[1,2,3],[4,5,6],[7,8,9]]

b = [i[0] for i in a]
print(b)

然后我们再来分析第二个,他们的位置分别是[0][0],[1][1],[2][2],所以就有思路了

a = [[1,2,3],[4,5,6],[7,8,9]]

b = [a[i][i] for i in range(len(a))]
print(b)

 

二.字典推导式

1.含义

字典推导式是该思想的延续,语法差不多,只不过产生的是字典而已。

2.格式

变量名={key:values for。。。}

3.实例

(1)将字典中的key和value进行兑换

普通方法:创建一个空字典,然后把value和key交换即可

a = {'1':10,'2':20}
c = {}
for key in a:
    values = a[key]
    c[values] = key
print(c)

得出结果:

推导式:

a = {'1':10,'2':20}
b = {values:key for key,values in a.items()}
print(b)

三.集合推导式(主要去重)

简单介绍下即可

L=[1,1,1,2,2,2,3,4,5,6,7]
a = {i for i in L}
print(a)

结果如下:

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值