1. 定义
用一行构建代码
例题
# 构建一个1-100的列表l1 = [i for i in range(1,101)]print(l1)# 输出结果[1,2,3,4,5,6,...100]
2. 两种构建方式
2.1 循环模式: [变量(加工后的变量) for 变量 in iterable]
例题
1. 将10以内所有整数写入列表
print([i for i in range(1,11)])# 输出结果[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2. 将10以内所有整数的平方写入列表。
print([i**2 for i in range(1, 11)])
3. 100以内所有的偶数写入列表.
print([i for i in range(2, 101, 2)])
4. 从python1期到python100期写入列表list
print([f'python{i}期' for i in range(1, 101)])
练习题
l1 = [i*i for i in range(1,11)]print(l1)l2 = [i for i in range(1,101) if i % 2 == 0]print(l2)l3 = [f'python{i}期' for i in range(1,101)]print(l3)
2.2 筛选模式: [变量(加工后的变量) for 变量 in iterable if 条件] 增加一个判断
例题
# 构建一个列表,要求元素大于4print([i for i in range(11) if i > 4])# 输出结果:[5, 6, 7, 8, 9, 10]
练习题
1. 10以内大于4的数
# print([i for i in range(11) if i > 4])print([i for i in range(1,31) if i % 3 == 0])
2. 30以内可以被三整除的数。
# 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab']l2 = [i.upper() for i in l1 if len(i) > 3]print(l2)
3. 找到嵌套列表中名字含有两个‘e'的所有名字(有难度)
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]# 方法一: 普通方法l4 = []for i in names: for j in i: if j.count('e') >= 2: l4.append(j)print(l4)# 方法二: 列表推导式方法print([j for i in names for j in i if j.count('e') >= 2 ])
3. 列表推导式的优缺点
优点:
简单,快捷,装b
缺点:
可读性不高,不好排错
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网之家。
新闻热点
疑难解答