1. 什么是列表推导式
列表推导式又称推导列表,听着很高大上但是平易近人的一个python知识点。这又是python的骚操作,又是一个“一行君”
列表推导式是以列表为载体,以推导的方式将数据生成并放在列表中。
推导即规则,它支持for循环和筛选模式(if判断模式)。
通俗易懂的说法:设定一个既定规则在列表中进行数据生成,列表推导式比传统方法更为简洁,代价是放弃一部分的可读性
请注意!
列表推导式并非不可代替的写法,用“笨”办法一样可以完成
2. 如何声明列表推导式
最简单的列表推导式:
列表结构作为一个承载体
list_data = [x for x in range(10)]
每循环一次向列表添加一个x的值,直到for全部完成
输入结果:[0,1,2,3,4,5,6,7,8,9]
列表推导式和传统方法的比较
推导式模式:
list_data = [x for x in range(10)]
传统模式:
list_data = []
for x in range(10):
list_data.append(x)
带判断的列表推导式:
list_data = [x for x in range(10) if x%2 == 0]
#输出偶数[0,2,4,6,8]
#for负责数据生产 >>> if负责数据筛选 >>> x最终数据输出
#列表推导式中没有任何标点符号
带判断的列表推导式 加一点料进去对最终输出结果进行处理:
list_data = [x**2 for x in range(10) if x%2 ==0]
#输出平方数[0,2,16,36,64]
列表推导式的双for循环:
list_data = [(x,y) for x in [1,2,3] for y in [4,5,6]]
#先看输出规律:第一个for的第一个元素与第二个for的每个元素进行组合,组合成一个元组
#输出:[(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)]
#如果返回的是多个值,可以用一个多元数据结构进行返回,如元组。这样元组可以作为一个元素存在与列表中,推导列表无法一次接受两个元素。
列表推导式的for循环对两层列表惊醒循环:
data = [[1,2,3,4,5],[6,7,8,9,10]]
list_data = [y for x in data for y in x]
#输出[1,2,3,4,5,6,7,8,9,10]
#传统写法
emp_list = []
for x in data:
for y in x:
emp_list.append(y)
字典推导式:
dict_data = {x:x for x in ("name","age","city")}
输出:{"name":"name","age":"age","city":"city"}
字典推导式构建,组合键值对
fields = ['姓名','年龄',"城市"]
info = ["zz",28,"上海"]
dict_data = {x:y for x,y in zip(fields,info)}
#传统方法
dict_dat = {}
for x,y in zip(fields,info):
dict_data[x] = y
#输出{'姓名':'zz',"年龄":28,'城市':'上海'}
本文详细介绍了Python中的列表推导式及其使用方法,包括基本语法、条件筛选、多重循环及应用示例,并对比了传统方法。
&spm=1001.2101.3001.5002&articleId=121411244&d=1&t=3&u=92fad78d0f7d4896b5886effeae174e2)
1679

被折叠的 条评论
为什么被折叠?



