python列表推导式复习

微信扫一扫,分享到朋友圈

python列表推导式复习
收藏 00

作用:用一个表达式创建一个有规律的列表或控制一个有规律的列表。

列表推导式又叫列表生成式

快速体验

需求:创建一个0到10的列表

while循环实现

#1.准备一个空列表
list1 = []
#2.书写循环,依次追加数字到空列表list1中
i = 0
while i <10:
    list1.append(i)
    i +=1
    
print(list1)

for循环实现

list2 = []
for i in range(10):
    list2.append(i)
print(list2)

列表推导式

生成指定范围的数值列表

list=[Expression for var in range]
  • list: 表示生成的列表名称
  • Expression: 表达式,用于计算新列表的元素
  • var: 循环变量
  • range: 采用range()函数生成range对象

实例:生成1到10乘以2的列表

l1 = [x * 2 for x in range(1,11)]

根据列表生成指定内容

newlist=[Expression for var in list]
  • newlist: 表示新生成的列表名称
  • Expressin: 表达式,用于计算新的列表的元素
  • var: 变量,值为后面列表的每个元素值
  • list: 用于生成新列表的原列表

实例:定义一个商品价格列表,然后应用列表推导式生成一个将全部商品价格打五折的列表

price=[1200,555,11,369,789,10000,4512,547,364]
sale=[float(x*0.5) for x in price]
print("原价格:",price)
print("折后价:",sale)

带if的列表推导式

newlist=[Expression for var in list if condition]
  • newlist: 表示新生成的列表名称
  • Expression: 表达式,用于计算新列表的元素
  • var: 变量,值为后面列表的每一个元素
  • list: 用于生成新列表的原列表
  • condition: 条件表达式,用于指定筛选条件

实例:定义一个记录商品价格的列表,然后应用列表推导式生成一个商品价格高于5000的列表

price=[12000,555,11,3690,7809,10000,4512,547,364]
high=[x for  x in price if x>5000]
print("原价格:",price)
print("高于5000的价格表:",high)

扩展

字典推导式

快速合并列表为字典或提取字典中目标数据。

实例

1.创建一个字典:字典key是1-5数字,value是这个数字的平方

dict1={i:i**2 for i in range(1,5)}
print(dict1)#{1: 1, 2: 4, 3: 9, 4: 16}

2.将2个列表合并成一个字典

list1=['name','age','gender']
list2=['tom',20,'man']
ral = {list1[i]:list2[i] for i in range(len(list1))}
print(ral)#{'name': 'tom', 'age': 20, 'gender': 'man'}

如果2个列表数据个数相同,len统计任何一个列表长度都可以

如果2个列表数据个数不同,len统计数据多的列表数据个数会报错,len统计数据少的列表数据个数不会报错

集合推导式

主要用来去重

list1=[1,1,2]
set1 = {i**2 for i in list1}
print(set1)#{1, 4}

 

一个热爱互联网的咸鱼

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

热门

    抱歉,30天内未发布文章!
返回顶部