列表推导式
通过for循环生成
list1 = [i for i in range(10)]
print(list1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
增加条件
# 可以写多个if,但是不能写else和elif
list1 = [i for i in range(10) if i>3 if i<8]
print(list1)
# [4, 5, 6, 7]
列表里面嵌套了序列
list2 = [(1, 2), (6, 7)]
list1 = [(i, k) for i, k in list2 if i > 5]
print(list1)
# [(6, 7)]
list3 = [(1, 2), (7, 8), (8, 9)]
list2 = []
list1 = [(list2.append(i), list2.append(k)) for i, k in list3 if i > 5 if i % 2 == 0]
print(list2)
# [8, 9]
list3 = [(1, 2), (7, 8), (8, 9)]
list2 = []
list1 = [list2.append((i, k)) for i, k in list3 if i > 5]
print(list2)
# [(7, 8), (8, 9)]
list4 = [(1,2),(7,8)]
list3 = []
list2 = []
list1 = [(list3.append(i), list2.append(k)) for i,k in list4 if i>5]
print(list3)
print(list2)
# 输出 [7]
# 输出 [8]
进行加减乘除
list1 = [1, 2, 3, 4]
list2 = [i*2 for i in list1]
print(list2)
# [2, 4, 6, 8]
元组推导式
通过for循环生成
tuple1 = (i for i in range(5))
print(tuple1) # <generator object <genexpr> at 0x000002386E9E7648>
a = list(tuple1) # [0, 1, 2, 3, 4]
print(tuple(a)) # (0, 1, 2, 3, 4)
tuple1 = (i for i in range(10) if i>4)
print(list(tuple1)) # [5, 6, 7, 8, 9]
通过是可以进行加减乘除,也是可以在后面增加 if 条件的
字典推导式
通过for循环生成
keys = ['name', 'age']
values = ['张三', 19]
dict1 = {keys[i]:values[i] for i in range(len(keys)) if len(keys) == len(values)}
print(dict1)
# {'name': '张三', 'age': 19}
集合推导式
通过for循环生成
set1 = {i for i in range(10)}
print(set1)
# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
通过是可以进行加减乘除,也是可以在后面增加 if 条件的