一、列表生成式
1.普通的遍历循环写法
复制代码
1
2
3
4
5
6
7
8
9
10s = '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
5s = '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
13li = [ [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
8li = [ [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——列表生成式和字典生成式内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复