python快速入门-6-推导式、拆包

一、推导式

就是一种能够快速生成数据的方式
根据最终要生成的数据,简单划分为
列表推导式
集合推导式
字典推导式
注意没有元组推导式,而是生成器

一、列表推导式

列表推导式:一种可以快速生成列表的方式
[变量 for 变量 in 可迭代对象]

a = [x for x in range(4)]
print(a)
a = [x for x in range(4,10)]
print(a)
a = [x for x in range(4,10,2)]
print(a)
a = [x for x in range(1,10) if x%2!=0]
print(a)
a = [(x,y) for x in range(1,10) for y in range(1,10)]
print(a)
a = [(x,y,z) for x in range(1,10) for y in range(1,10) for z in range(1,10)]
print(a)

二、集合推导式

集合推导式:一种快速生成集合的方式
集合推导式中也可以用if等,与列表推导式在格式上很类似

a = {x for x in range(4)}
print(a)
a = {x for x in range(4,10)}
print(a)
a = {x for x in range(4,10,2)}
print(a)
a = {x for x in range(1,10) if x%2!=0}
print(a)
a = {(x,y) for x in range(1,10) for y in range(1,10)}
print(a)
a = {(x,y,z) for x in range(1,10) for y in range(1,10) for z in range(1,10)}
print(a)

三、字典推导式

字典推导式:一种快速生成字典的方式
快速生成一个1~10内key为某个数此时value为平方的字典

a = {x:x**2 for x in range(1, 11)}
print(a)

列表中嵌套字典

a = [{x:x**2} for x in range(1, 11)]
print(a)

二、拆包

拆包是一种快速提取数据的方式

一、拆元组

例如,有一个元组(11, 22, 33, 44)想快速的提取每个元素且赋值给num1, num2, num3, num4这4个变量

nums = (11, 22, 33, 44)  # 定义一个元组
num1 = nums[0]  # 通过下标来提取
num2 = nums[1]  # 通过下标来提取
num3 = nums[2]  # 通过下标来提取
num4 = nums[3]  # 通过下标来提取

拆包一行代码搞定

num1, num2, num3, num4 = (11, 22, 33, 44) 

nums = (11, 22, 33, 44)  # 定义一个元组
num1, num2, num3, num4 = nums
print(num1)

二、拆列表

nums = [11, 22, 33, 44]  # 定义一个元组
num1, num2, num3, num4 = nums

print(num1)
print(num2)
print(num3)
print(num4)

三、拆集合

nums = {11, 22, 33, 44}# 定义一个元组
num1, num2, num3, num4 = nums

print(num1)
print(num2)
print(num3)
print(num4)

四、拆字典

nums = {"name":"wang", "age":18,"qq":"520"}
num1, num2, num3 = nums.items()

print(num1)
print(type(num1))
print(num2)
print(num3)


经典

利用拆包进行元素替换而不需要多余变量。

a = 18
b = 20
print(a,b)
a,b =b,a
print(a,b)

a, b = b, a首先要计算=右边b, a此时他们会被当做一个元组即(b, a)就相当于(20, 18)
然后再将a, b = (20, 18)进行计算,此时a为20,b为18

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值