列表推导式
基本格式: [表达式 for 变量 in 列表] [表达式 for 变量 in 列表 if 条件]
实例1:过滤长度小于等于5的字符串列表,并将剩下的转换成大写字母
names = ['zhangsan','lisi','wangmazi','wangzu','zhaoliu']
new_names = [name.upper()for name in names if len(name)>5]
print(new_names)
>>>输出结果为:['ZHANGSAN', 'WANGMAZI', 'WANGZU', 'ZHAOLIU']
实例2:计算10以内可以被3整除的整数:
multiples = [i for i in range(10) if i % 3 ==0]
print(multiples)
>>>输出结果为:[0, 3, 6, 9]
实例3:如果首字母是 p 则首字母大写,否则全部大写
list1 = ['python','java','c++']
list2 = [world.title() if world.startswith("p") else world.upper() for world in list1]
print(list2)
>>>输出结果为:['Python', 'JAVA', 'C++']
字典推导式
基本格式: { key_expr: value_expr for value in collection } { key_expr: value_expr for value in collection if condition }
实例1:使用字符串长度为值,组成键值对
shop = ['taobao','jingdong','pinduoduo']
newshop = {key:len(key) for key in shop}
print(newshop)
>>>输出结果为:{'taobao': 6, 'jingdong': 8, 'pinduoduo': 9}
实例2:使用字符串的长度为键,组成键值对
shop = ['taobao','jingdong','pinduoduo']
newshop1 = {len(value):value for value in shop}
print(newshop1)
>>>输出结果为:{6: 'taobao', 8: 'jingdong', 9: 'pinduoduo'}
集合推导式
基本格式: { expression for item in Sequence } { expression for item in Sequence if conditional }
实例1:输出列表的平方数
arr = [1,2,3]
new_arr = {num**2 for num in arr}
print(new_arr)
>>>输出结果为:{1, 4, 9}
实例2:判断不是abc的字母并输出
str = "fancy"
new_str = {x for x in str if x not in 'abc'}
print(new_str)
>>>输出结果为:{'y', 'n', 'f'}
这里集合是无序的,所以输出的结果也是乱序的
元组推导式
写到这基本的格式是一样的,只是 元组用的是 () ,列表用的是 [] 实例1:生成一个包含0~9的元组:
arr = (x for x in range(10))
print(tuple(arr))
>>>输出结果为:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
|