温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python之列表推导式的用法

发布时间:2020-10-02 17:25:29 来源:脚本之家 阅读:279 作者:思绸之路 栏目:开发技术

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 条件] 增加一个判断

例题

 # 构建一个列表,要求元素大于4 print([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

缺点:
​ 可读性不高,不好排错

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI