列表,字典和集合的推导式

‘’‘推导式’’’

'''推导式comprehensions(又称解析式),
推导式可以从一个数据序列构建另一个新的数据序列
推导式包括:列表,字典,集合推导式'''

'''列表推导式
利用其他列表创建新列表,对得到的元素进行筛选或转换
基本格式:  变量名=[表达式 for 变量 in 列表] 或者
变量名=[表达式 for 变量 in 列表 if 条件]
执行流程:遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算
或遍历列表中的内容给变量,然后进行判断,符合的值再给表达式。
'''
# 练习1:将lst中每一个元素进行平方后放入到一个新列表中
# lst = [1, 2, 3, 4, 5, 6, 7, 8]
#推导式
# new_list=[i*i for i in lst]
# print(new_list)
#函数
# def square(num):
#     return num*num
# new_list=[square(i) for i in lst]
# print(new_list)
# 练习2.求出lst 中是奇数的值,然后放入到一个新列表中
# lst = [1, 2, 3, 4, 5, 6, 7, 8]
# new_list=[num for num in lst  if num%2==1]
# print(new_list)
# 练习3.求列表中所有大于2的偶数进行平方计算
# lst = [1, 2, 3, 4, 5, 6, 7, 8]
# new_list=[num*num for  num in  lst if num %2==0 if num >2]
# print(new_list)
# 练习4.将一个嵌套列表转换成一个一维列表。
# lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]  #转换成:lst2=[1, 2, 3, 4, 5, 6, 7, 8, 9]
# new_list=[i for lst1 in lst for i in lst1]
# print(new_list)
#使用普通for循环结构
# lst2=[]
# for lst1 in lst:
#     for i in lst1:
#       lst2.append(i)
# print(lst2)
# 练习5:现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]要求出1/4/7  和 1/5/9 元素,思考如何取出
lst = [[1,2,3],[4,5,6],[7,8,9]]
# list1=[lst[i][0] for i in range(len(lst))]
# print(list1)
# list2=[lst[i][i] for i in range(len(lst))]
# print(list2)
# list1=[]
# for i in range(len(lst)):
#     list1.append(lst[i][0])
# print(list1)
# list2=[]
# for i in range(len(lst)):
#     list2.append(lst[i][i])
# print(list2)
'''字典推导式
产生的是字典,
字典推导的格式:变量名={。。。}'''
# 练习1: 将字典中的key和value 进行对换。
# dic={'name':'zs','age':22}
# new_dic={}
# for key ,value in dic.items():
#     new_dic[value]=key
# print(new_dic)
#使用字典推导式
# new_dic={v:k for k,v in dic.items()}
# print(new_dic)  #items  将字典转换成元组
# dic={v:k for k ,v in zip(list('ASD'),list('123'))}
# print(dic)        zip()将字典转换成元组,返回元组最短的
'''集合推导式
与列表的区别在与{}与[]'''
# list=[1,1,1,1,2,2,2,3,4,5,6,]
# set={i for i in list}
# print(set)
# 练习1:计算列表中每个值的平方,自带去重功能
# squared={x**2 for x in [1,2,1,4,6]}
# print(squared)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值