我是靠谱客的博主 缓慢镜子,这篇文章主要介绍Python——列表生成式和字典生成式,现在分享给大家,希望可以做个参考。

一、列表生成式

1.普通的遍历循环写法
复制代码
1
2
3
4
5
6
7
8
9
10
s = '51 5000 10000' li = [] for item in s.split(): li.append(int(item)) print(li) k,a,b = li print(k,a,b)

在这里插入图片描述

复制代码
1
2
3
4
5
6
7
#[1**1 2**2 .. 9**9] 求1到9的乘方 li = [] for i in range(1,10): li.append(i ** i) print(li)

在这里插入图片描述

2.列表生成式的便捷写法(1条命令搞定)
复制代码
1
2
3
4
5
s = '51 5000 10000' li = [int(item) for item in s.split()] ##与上一串命令效果相同,但是更加的方便 print(li)

在这里插入图片描述

复制代码
1
2
3
#[1**1 2**2 .. 9**9] 求1到9中偶数的乘方 print([i ** i for i in range(1,10) if i % 2 == 0]) ##在列表生成式中加入if条件判断

在这里插入图片描述

3.列表生成式变形
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
li = [ [1,2,3], [4,5,6], [7,8,9] ] #普通遍历性 resultli = [] for item1 in li: for item2 in item1: resultli.append(item2) print(resultli)

在这里插入图片描述

复制代码
1
2
3
4
5
6
7
8
li = [ [1,2,3], [4,5,6], [7,8,9] ] print([item2 for item1 in li for item2 in item1]) ##列表生成式直接遍历

在这里插入图片描述

二、字典生成式

1.普通方法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#假设有20个学生,名字为westosx,学生分数在60-100之间, #筛选出成绩在90分以上的学生 import random stuInfo = {} for i in range(20): name = 'westos' + str(i) score = random.randint(60,100) stuInfo[name] = score print(stuInfo) ##20个学生的成绩 highscore = {} for name,score in stuInfo.items(): if score > 90: highscore[name] = score print(highscore) ##成绩在90分以上的学生及成绩

在这里插入图片描述

2.字典生成式方法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
#假设有20个学生,名字为westosx,学生分数在60-100之间, #筛选出成绩在90分以上的学生 import random stuInfo = {} for i in range(20): ##生成20个学生的成绩 name = 'westos' + str(i) score = random.randint(60,100) stuInfo[name] = score print({name: score for name,score in stuInfo.items() if score > 90}) ##直接筛选出90分以上的成绩和学生

在这里插入图片描述

最后

以上就是缓慢镜子最近收集整理的关于Python——列表生成式和字典生成式的全部内容,更多相关Python——列表生成式和字典生成式内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部