我是靠谱客的博主 激动水杯,最近开发中收集的这篇文章主要介绍Python的列表,集合,字典生成式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一 列表生成式

experssion(或者函数) ------ for item1 in 序列 if 判断语句
--------------------------------------for item2 in 序列 if 判断语句
-------------------------------------for item3 in 序列 if 判断语句
案例1:
生成一个列表, 列表元素分别为[…n**n]

print([i**i for i in range(1,8)])

在这里插入图片描述
案例2:
找出1~10之间所有奇数, 并且返回一个列表, (所有的奇数转换为字符串)

print([str(i) for i in range(1,11,2)])

在这里插入图片描述
案例3:
找出1~100之间所有奇数, 并且返回一个列表,(如果能被3整除, 返回该数的平方, 否则返回该数的三次方)

print([i**2 if i%3==0 else i**3 for i in range(1,101,2)])

在这里插入图片描述
案例4:
给定一个列表li = [2,3,4,5,6,3,1,4,5](如果是偶数返回0, 如果是奇数返回1)

li=[2,3,4,5,6,1,4,5]
print([0 if i%2==0 else 1 for i in li ])

在这里插入图片描述
案例5:
找出1~100之间所有的质数

def isprime(num):
    for i in range(2,num):
        if num%i==0:
            return False
    else:
        return True
print([i for i in range(2,101) if isprime(i)])

在这里插入图片描述

矩阵变换

  • 将3*3的矩阵转换成一维数组;
li=[
    [1,2,3],
    [2,3,4],
    [4,5,6]
]
resLi=[]
for item1 in li:
    for item2 in item1:
        resLi.append(item2)
print(resLi)

在这里插入图片描述

  • 矩阵转置
    实现矩阵转秩的两种方法:
    1). 列表生成式
    2). 内置函数zip
    1.列表生成式
li=[
    [1,2,3,4],
    [2,3,4,5],
    [4,5,6,6]
]
print([[row[i] for row in li] for i in range(4)])

在这里插入图片描述
2.内置函数zip

jy=list(zip(*li))
for i in jy:
    print(list(i))

在这里插入图片描述
*li: 解包
zip: 1).打包函数, 用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个个元组, 然后返回由这些元组组成的列表。
2).如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同, 利用 * 号操作符,可以将元组解压为列表
3). zip 方法在 Python 2 和 Python 3 中的不同: 在 Python 3.x 中为了减少内存,zip( ) 返回的是一个对象。

二 字典生成式

[ key:values for item1 in 序列 if 判断语句 
			for item2 in 序列 if 判断语句
			for item3 in 序列 if 判断语句 ]

案例1:假设有20个学生,学生分数在60-100之间,筛选出成绩在90分以上的学生

import random
# stuInfo={}
# for i in range(20):
    #第一种写法
    # name='westos'+str(i)
    # score=random.randint(60,100)
    # stuInfo[name]=score
    #第二种写法
    #stuInfo['westos'+str(i)]=random.randint(60,100)
    #最快捷简便的方法
stuInfo={'westos'+str(i):random.randint(60,100) for i in range(20)}  #字典生成式
print(stuInfo)
#筛选出高于90的人
#第一种写法
# highscore={}
# for name,score in stuInfo.items():
#     if score>90:
#         highscore[name]=score
# print(highscore)
#第二种写法
print({name:score for name,score in stuInfo.items() if score>90})

在这里插入图片描述

  • 将字典的key,value调换
di={'a':'apple','b':'banana','c':'peach'}
print({v:k for k,v in di.items()})
print({k:k.upper() for k,v in di.items()})

在这里插入图片描述

  • 大小写计数合并 : key值最终全部为小写
d={'A':10,'b':0,'a':9,'B':8,'d':1}
print({k.lower():d.get(k.upper(),0)+d.get(k.lower(),0) for k,v in d.items()})

在这里插入图片描述

三 集合生成式

同列表一样,只是将[ ]变为了{ }
也同字典相同,只不过传的是一个参数

s={1,2,3,4,5,6}
#集合生成式
print({i**2 for i in s})
#字典生成式
print({i:i**2 for i in s})

在这里插入图片描述

四 判断for循环

from  collections import Iterable
li=['westos',8,'hello','python']
for i in li:
    print(i)
print(isinstance(li,Iterable))    #判断是否可以for循环

在这里插入图片描述

最后

以上就是激动水杯为你收集整理的Python的列表,集合,字典生成式的全部内容,希望文章能够帮你解决Python的列表,集合,字典生成式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部